ここでは、頻繁に使われるgdbのコマンドを説明します。より詳細な内容は、gdb上のhelpコマンドを用いて調べて下さい。
- プログラムの実行、続行、終了
- run [args] [< filename] [(>|>>) filename]
- プログラムを実行する。 argsでコマンドライン引数を指定可能。 また、入出力リダイレクションも使用することができる。
- cont
- 停止しているプログラムを続行する。
- next
- 停止しているプログラムの次の1行を実行する。 stepとの違いは関数呼び出しを1行として扱う点である。
- step
- 停止しているプログラムの次の1行を実行する。 nextとの違いは呼び出された関数の行も1行として扱う点である。
- quit
- gdbを終了する。
- ソースファイルの選択と表示
- file filename
- 現在の表示しているソースファイルとは別のソースファイルfilenameを選択。
- list
- 現在選択されているソースファイルのリストを10行分表示する。 プログラムが停止している場合は、その行を中心として10行分を表示する。
- list [linenum1 [,linenum2]]
- 現在選択されているソースファイルの指定行(linenum1)を中心として 10行分を表示する。 範囲指定している場合はlinenum1〜linenum2までを表示する。
- ブレイクポイントの設定、解除
- break [file:]function [if cond]
- (ファイル名file内の)関数functionの先頭にブレイクポイントを設定する。 condの部分にはC言語で用いる条件を入れることができる。 条件が設定された場合は、その条件に合致した場合のみブレイクポイントが 有効となる。
- break linenum [if cond]
- 指定行linenumにブレイクポイントを設定する。 この場合、指定行を実行する直前で停止する。
- watch cond
- 条件condが成り立った場合に停止する。
- info break
- ブレークポイントの状態を表示。
- delete
- 設定した全てのブレークポイントを削除する。
- delete breakp
- 番号breakp(info break で表示される番号)のブレークポイントを削除する。 番号はスペースで区切って、複数を指定することが可能。
- プログラムの状態の表示と変更
- stack
- 現在停止しているプログラムの状態(関数の呼び出し状況:バックトレース)を 表示する。 btやwhereコマンドを入力しても同じ。
- print expr
- exprの値を表示。 exprは変数だけでなく、式、関数呼び出し、構造体としてもよい。
また、exprがポインタ変数である場合は、 print *expr とすると ポインタが指し示すアドレスの内容を表示する。
- display expr
- プログラムが停止した時点で、自動的にexprの値を表示する。
- print variable = e
- 変数variableの内容をexprに変更する。
- info locals
- 現在の関数内の局所変数の名前と値を全て表示する。
- gdbのヘルプ
- help [command]
- helpのみを入力すると、gdb全体のヘルプを表示。 特定のコマンドcommandを指定すると、そのコマンドのヘルプを表示する。
- 参考文献
GDBデバッギング入門
アスキー出版
リチャード・ストールマン他著
価格 1,900円
発行年月 1999年2月
ISBN: 475613016X