GDB フロントエンドを作成するために、実際にはGDB/MIプロトコルを使用したいのですが、おそらくリンク先の古いものではなく、この最新のコピーを読んでください。
サンプル GDB/MI セッション
( GDB マニュアルのこのセクションを軽く編集したバージョン)
MI Command Interpreter を使用した GDB の起動
$ gdb -q --interpreter=mi2
=thread-group-added,id="i1"
(gdb)
ファイル /bin/true
-file-exec-and-symbols /bin/true
^done
(gdb)
休憩メイン
-break-insert main
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x00000000004014c0",func="main",file="true.c",fullname="/usr/src/debug/coreutils-8.17/src/true.c",line="59",times="0",original-location="main"}
(gdb)
実行とブレークポイント ヒット
-exec-run
=thread-group-started,id="i1",pid="2275"
=thread-created,id="1",group-id="i1"
^running
*running,thread-id="all"
(gdb)
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1"
=library-loaded,id="/lib64/libc.so.6",target-name="/lib64/libc.so.6",host-name="/lib64/libc.so.6",symbols-loaded="0",thread-group="i1"
=breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x00000000004014c0",func="main",file="true.c",fullname="/usr/src/debug/coreutils-8.17/src/true.c",line="59",times="1",original-location="main"}
*stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x00000000004014c0",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffde98"}],file="true.c",fullname="/usr/src/debug/coreutils-8.17/src/true.c",line="59"},thread-id="1",stopped-threads="all",core="1"
(gdb)
継続する
-exec-continue
^running
*running,thread-id="1"
(gdb)
=thread-exited,id="1",group-id="i1"
=thread-group-exited,id="i1",exit-code="0"
*stopped,reason="exited-normally"
GDB の終了
(gdb)
-gdb-exit
^exit
既存の GDB/MI クライアント
C、C++、Java、Python での GDB/MI クライアントの実装がいくつかあります。読みやすいと思うものをいくつかリストします。
このGDB フロントエンドのリストも参照することをお勧めします。