GDB は CLI を使用してデバッグ対象と通信しません。ptrace
システムコール/APIを使用します。
CLI は「コマンドライン インターフェイス」を意味します。プロセス間の通信の最も単純な形式はstdin
/stdout
です。これは、パイプによって実現されます。例えば:
ps -ef | grep 'httpd'
の標準出力ps
(プロセス リストになります) は の標準入力に接続され、grep
プロセス リストの出力を 1 行ずつ処理します。
両方のプログラムを作成していますか、それとも既存のプロセスと通信したいですか? コンテキストがないと、「show total_messages_processed」が何を意味するのかわかりません。
プログラムに何らかのステータスを伝えさせたいだけの場合は、次のようなアプローチが適していdd
ます。プロセスにSIGUSR1
シグナルを送信すると、現在の統計情報がダンプされ、stderr
処理が続行されます。
$ dd if=/dev/zero of=/dev/null&
[1] 19716
$ pid=$!
$ kill -usr1 $pid
$ 10838746+0 records in
10838746+0 records out
5549437952 bytes (5.5 GB) copied, 9.8995 s, 561 MB/s