gdb起動
$ gdb バイナリ コアファイル
スタックフレームの中身を拝見
(gdb) bt (gdb) bt full ←ローカル変数の値も表示
現在自分がいるスタックフレームを表示
(gdb) f
フレームの移動
(gdb) f (gdb) up ←1つ上のフレームに移動 (gdb) down ←1つ下のフレームに移動
現在行の前後のソースコードを表示。
l(ist)で表示したい変数の名前を確認するといいだろう。
(gdb) l (gdb) l val ←変数の宣言部のソースを見たい場合 (gdb) l func ←関数の定義部のソースを見たい場合
値を見る
(gdb) p val ←現在のフレームのソースコード上にint型のvalがあるならこれで出る。 (gdb) p *pval ←ポインタ変数の値表示。文字列を指していた場合は文字列が出力される。 (gdb) p &val ←変数のアドレス表示 (gdb) x/s 0x0123456 ←アドレスを先頭として文字列表示 (gdb) printf "%sn", 0x0123456 ←アドレスを先頭として文字列表示 (gdb) p kozo ←構造体の全メンバ表示 (gdb) p kozo.data1 ←構造体の特定メンバ表示
pの詳しい使い方はこちら:http://tsstudio.s12.xrea.com/unix/gdb.html#core
変数の型表示
(gdb) whatis val (gdb) ptype val ←whatisとあまり変わらないが、クラス、構造体、UNION、ENUMだった場合、メンバも表示。