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

もし実行中のプロセスのデバッグを行いたい場合には、 第 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 ' オプションの引数とみなされます。 多くのオプションが、長い表記法と短い表記法の両方を持ちます。 ここでは両方を示してあります。 長い表記法は、そのオプションが不明瞭でない長さまで切り詰められたものであれば きちんと解釈されます。(好みにより、`- ' の代りに `+ ' が使用できます。) 全てのオプションとコマンドライン引数は順番に処理されます。 この順番は `-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 ' からコマンドを読み込みません。 通常は、 全てのコマンドオプションと引数が処理された後で、 このファイル内のコマンドが実行されます。

-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 versions 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 conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.