GDBデバッガの使い方
■主なコマンド
コマンド | 意味 |
---|---|
r | 実行開始 |
s | ステップイン |
n | ステップオーバー |
fin | ステップアウト |
q | gdb終了 |
p | 値の表示(任意の式を実行することも可(※1)) |
x | 値の表示 |
set | 値の設定。pを使って設定してもよい。例)p hoge=1 |
※1 p memset(hoge, 0x00, sizeof(hoge)) など。
■その他コマンド
コマンド | 意味 |
---|---|
b [ソース名:]行数 | ブレークポイント設定。 |
d | すべてのブレークポイント、ウォッチポイントを削除 |
d [info bで出てくる番号] | 該当ブレークポイントを削除 |
enable [番号] | ブレークポイントを有効にする |
disable [番号] | ブレークポイントを無効にする |
condition [番号] [式] | ブレークポイントに条件を追加(式はaa == bb) |
contidion [番号] | 設定した条件を取り消す |
display [式] | 式の値を常に表示 |
watch [式] | 式の値が変更されたら表示 |
undisplay [番号] | displayを解除 |
whe, bt | スタックを表示 |
up | スタックを上へ移動 |
down | スタックを下へ移動 |
info display | 現在のdisplay設定を表示 |
delete display | display設定削除 |
info b | 現在のブレークポイント設定を表示 |
l | 周辺ソースを表示 |
shell XXX | bashコマンド XXXを実行 |
k | 実行中プログラム終了 |
gdb --args hoge piyo.txt | 引数つき実行 |
http://tsstudio.s12.xrea.com/mt/archives/2007/08/gdb.html
★print 変数の値を変数の型に応じて表示します。変数 var の値を表示するときは、 print varのように指定します。 /formatを付加すると出力書式を指定できます。 書式 意味 書式 意味 /o 8進 /d 符号付き10進 /x 16進 /u 符号なし10進 /t 2進 /c 文字 /f 浮動小数点 /a アドレス 変数 var の値を2進数で表示するときは、print/t varのように指定します。 ★x メモリの内容を表示します。printコマンドと同じ出力書式に加えて以下の出力書式と 繰り返し回数を指定できます。 /s 文字列表示 /i インストラクション表示(逆アセンブル) 変数 name の文字列表示は、x/s nameのように指定します。 メモリの指定領域0x1370の逆アセンブルは、x/5i 0x1370のように指定します。
http://www.swlab.it.okayama-u.ac.jp/man/gdb-4.18/gdb-ja_9.html
set print pretty on 構造体を表示する際に、インデントされた形式で1行に1メンバずつGDBに表示させます。 以下に例を示します。 $1 = { next = 0x0, flags = { sweet = 1, sour = 1 }, meat = 0x54 "Pork" } set print pretty off 構造体を詰め込み形式でGDBに表示させます。以下に例を示します。 $1 = {next = 0x0, flags = {sweet = 1, sour = 1}, \ meat = 0x54 "Pork"} これがデフォルトの形式です。 show print pretty GDBが、構造体を表示するのにどちらの形式を使用しているかを示します。