かなり自分用
|
コマンド |
備考 |
起動 |
gdb プログラムファイル |
|
coreファイル付きで 起動 |
gdb プログラムファイル core |
|
実行中のプロセスをデバッグする |
gdb プログラムファイル プロセスID |
|
実行中のプロセスをデバッグする |
attach プロセスID |
|
実行中のプロセスのデバッグを止める |
detach |
|
終了 |
quit |
|
コマンド |
備考 |
1行実行(関数の中に入らない) |
n |
|
1行実行(関数の中にステップイン) |
s |
|
1行実行(ループの1巡目は1行ずつ。その後ループの最後まで実行) |
u |
|
関数の最後まで実行 |
fin |
|
変数の値を設定 |
p 変数=値 |
関数呼び出し |
call 関数 |
フレームの移動 |
up, down, f 番号 |
現在のフレームの表示 |
frame |
mainからのスタックトレース |
where, bt |
ローカル変数の表示 |
info local |
ブレイクポイント設定 |
b 関数名 |
|
ブレイクポイント設定 |
b 行番号 |
|
条件付きブレイクポイント設定 |
b 行番号 if 条件 |
|
ブレイクポイント一覧 |
info b |
|
ブレイクポイント削除 |
delete b |
|
ブレイクポイント削除 |
clear 関数、行番号、ファイル名:行番号など |
|
ブレイクポイントまで実行 |
c |
|
ブレイクポイントまで条件つきで実行 |
cond ブレイクポイント番号 条件 |
例:iが10の時のみ停止 cond 3 i==10 |
マルチスレッドの場合には、カレントスレッドしか対象にならない。
ウォッチポイント設定 |
watch 変数名 |
変数の値が変化したときだけ停止する |
ウォッチポイント一覧 |
info watchpoints |
プログラム状態に関する情報を表示する |
info program |
デバッグしているプロセスに関する情報を表示する。 |
info proc [mappings,times,id,status,all] |
スレッド一覧 |
info threads |
スレッド切り替え |
thread 番号 |
スレッドを指定してブレイクポイントを設定 |
break ファイル:行 thread スレッド番号 |
スレッドを指定してブレイクポイントを条件付きで設定 |
break ファイル:行 thread スレッド番号 if 条件 |
シグナル送信 |
signal シグナル番号 |
シグナル一覧 |
info signals |
シグナル受信時の動作設定 |
handle signal (stop,nostop,print,noprint,pass,nopass) |
|
コマンド |
備考 |
shellコマンド実行 |
shell <コマンド> |
カレントディレクトリの移動 |
cd directory |
カレントディレクトリの表示 |
pwd |
ディスアセンブル |
disassemble [開始行] [,終了行] |
static 変数の表示 |
p filename::変数名 |
static 変数の表示 |
p 関数名::変数名 |
配列の表示 |
p 配列@長さ |
p a@3 |
型の表示 |
whatis exp |
型の表示 |
ptype exp |
変数設定 |
set $変数名=値 |
set $i=0 |
変数の利用 |
p array[$i++]->val |
fork時の動作 |
set follow-fork-mode parent又はchild |
show follow-fork-mode で現在のモードを表示 |
fork時の動作 |
set detach-on-fork on又はoff |
offにすると親プロセス子プロセス両方がGDBでコントロール可能 |
このファイルに毎回実行するコマンドを記述しておくと起動時に実行される。