2014年1月13日月曜日

第11回「GDBでプロセスにアタッチ」

プログラムの仕様に詳しくなるには、デバッグしかないですよ…

さて、第11回のお題は「GDBでプロセスにアタッチ」です。

単体試験や、設定値にどんな値が入っているか知るために、
GDBでプロセスにアタッチします。
1.make時にデバッグオプションを付けてコンパイル
CFLAGS = -g …
もしくは、
cc -c -g …
2.プロセスPIDを確認
% ps x | grep プロセス名
PID プロセス名
3.gdb起動
% gdb
4.ソースコードがあるディレクトリを指定
directory ソースコードのディレクトリパス
5.プロセスにアタッチ
attach プロセスPID
6.試験が終わったら、デタッチ
detach
quit

補足 GDBの基本操作
1.ソースコード表示
list
list filename:num
2.値表示
p 変数名
3.ブレークポイント
b 行番号
b 関数名
b ファイル名:行番号
4.ステップアウト
n
5.ステップイン
s
6.ブレークポイントまで継続
c
7.実行
r
8.ブレークポイント確認
info b
9.設定
set 変数=値
10.実行中の関数レベルを表示
where
11.ブレークポイント削除
d ブレークポイント番号
12.関数の呼び出しスタックの一覧を表示
info stack
13.存在しているスレッドの一覧を表示
info Thread

プログラミングの基本は、デバッグの繰り返しです。

0 件のコメント: