gdb(1) GNU Tools gdb(1) 名称 gdb - The GNU Debugger 書式 gdb [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] --- --- [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c --- ------- ---- ---- core] [-x cmds] [-d dir] [prog[core|procID]] ---- ---- --- ---- ---- -------- 解説 GDB のようなデバッガの目的は、プログラムが実行中もしくはク ラッシュした時にそのプログラムの ``内部'' で何が行なわれて いるかを見ることができるようにすることです。 GDB は、実行中にバグを見つけることを手助けするために、主に 4 種類の仕事 (加えて、これらをサポートするもの) を行なうこ とが出来ます。 + プ ログラムの動作を詳細に指定してプログラムを実行さ せる。 + 詳細な条件でプログラムを停止させる。 + プログラムが止まった時に、何が起こったか調べる。 + プログラムの状態を変更し、ひとつのバグの影響を修 正 して別の部分を調べる。 GDB は C, C++, Modula-2 などで書かれたプログラムのデバッグ が行なえます。 Fortran は、GNU Fortran が出来たときにサ ポ ートします。 GDB はシェルコマンドgdbで起動されます。いったんスタートす ると、GDB コマンドquitを実行して終了するまで、端末からコマ ンドを読み続けます。 gdb自身のオンラインヘルプはhelpコマン ドで得られます。 gdb は引数やオプション無しで起動できますが、たいてい、起動 時 には 1 つか2 つの引数をとります。実行プログラムを引数と してとる場合は以下のようになります: gdb program 実行プログラムと core ファイルの両方を指定することも出来ま す: gdb program core GNU Tools 4nov1991 1 gdb(1) GNU Tools gdb(1) も し 実行中のプロセスのデバッグを行ないたい場合には、第 2 引数にプロセス ID を指定すれば、デバッグが行なえます: gdb program 1234 これは GDB をプロセス1234 番に接続します(`1234'という名 前 の ファ イ ル が存在しない限り。 GDB はそのファイルが core ファイルであるかどうかを最初にチェックします)。 頻繁に利用される GDB コマンドを以下に挙げます: break [file:]function ---- -------- プレークポイントを function (file内の)に設定 し ま -------- ---- す。 run [arglist] ------- プ ロ グ ラ ムの実行を開始します(もし指定された場合 はarglistもいっしょに)。 ------- bt バックトレースです。プログラムのスタックを表示し ま す。 print expr ---- 式の値を表示します。 c プログラムの実行を再開します(ブレークポイントで停止 中に)。 next 次のプログラム行を実行します (停止中に)。その行内の 全ての関数は 1 ステップとみなされます。 step 次のプログラム行を実行します (停止中に)。その行内の 関数内へは、ステップ実行しにいきます。 help [name] ---- GDB command nameについての情報を表示する か、 ま た ---- は、 GDB を使う上での一般的な情報を表示します。 quit GDB を終了します。 GDB の詳細についてはUsing GDB: A Guide to the GNU Source- ----- ---- - ----- -- --- --- ------- Level Debugger, by Richard M. Stallman and Roland H. ----- -------- Pesch. を参照して下さい。同じテキストは、 info プログラム 内の gdb エントリで、オンラインで得られます。 オプション オプションのない引数は、実行ファイルと core ファイル (もし く はプロセス ID) を表します。つまり、オプションフラグ無し の第 1 引数は `-se' オプションの引数とみなされ、第 2 引 数 が同様にオプションがなくファイル名であった場合は `-c' オプ ションの引数とみなされます。多くのオプションが、長い表記法 と 短 い表記法の両方を持ちます。ここでは両方を示してありま す。長い表記法は、そのオプションが不明瞭でない長さまで切り GNU Tools 4nov1991 2 gdb(1) GNU Tools gdb(1) 詰 め ら れ た ものであればきちんと解釈されます。(好みによ り、`-' の代わりに `+' が使用できます。) 全てのオプションとコマンドライン引数は順番に処理されます。 この順番は `-x' オプションが使用された時は変わります。 -help -h 短い説明つきで、全てのオプションを表示します。 -symbols=file ---- -s file ---- シンボルテーブルを、ファイル fileから読みます。 ---- -exec=file ---- -e file ---- ファイル file を実行可能ファイルとして利用します。 ---- -se=file ---- ファイル file からシンボルテーブルを読み、実行可能 ---- ファイルとして利用します。 -core=file ---- -c file ---- ファイル file を調査用の core dump として利用しま ---- す。 -command=file ---- -x file ---- ファイル fileから GDB のコマンドを読み込みます。 ---- -directory=directory --------- -d directory --------- ソースファイルを探索するためのパスに directory を --------- 追加します。 -nx -n 初期化ファイル .gdbinit' からコマンドを読み込みませ ん。通常は、全てのコマンドオプションと引数が処理 さ GNU Tools 4nov1991 3 gdb(1) GNU Tools gdb(1) れた後で、このファイル内のコマンドが実行されます。 -quiet -q ``Quiet''で す。 起動時のメッセージおよび copyright メッセージを表示しません。これらのメッセージは バッ チモードでも削除されます。 -batch バッ チモードで動作します。`-x' (および、実行を抑制 されなければ `.gdbinit') で指定したファイル内の全て のコマンドを処理した後で戻り値として 0 を返します。 コマンドファイル内の GDB コマンドの実行中にエラーが 起こった場合は 0 でない値が返ります。 バッチモードは GDB をフィルタとして実行する場合に有 効です。 -cd=directory --------- GDB のワーキングディレクトリを、カレントディレクト リの代わりに directory にして実行します。 --------- -b bps リモートデバッグ用の GDB が利用するシリアルインタ --- フェースの転送速度をセットします。 -tty=device ------ プログラムの標準入出力に device を利用します。 ------ 関連項目 info内の `gdb' エントリ ; Using GDB: A Guide to the GNU ----- ---- - ----- -- --- --- Source-Level Debugger, Richard M. Stallman and Roland H. ------------ -------- Pesch, July 1991. COPYING Copyright (c) 1991 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified ver- sions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above GNU Tools 4nov1991 4 gdb(1) GNU Tools gdb(1) conditions for modified versions, except that this permis- sion notice may be included in translations approved by the Free Software Foundation instead of in the original English. GNU Tools 4nov1991 5