tail head cat sleep
QR code linking to this page

manページ  — gdb

名称

gdb - GNU デバッガ

内容

書式

gdb [-help] [-nx] [-q] [-batch] [-cd= dir ] [-f] [-k] [-wcore] [-b bps] [-tty= dev] [-s symfile amp;] [-e prog amp;] [-se prog amp;] [-c core amp;] [-x cmds amp;] [-d dir amp;] [ prog [ core|procID amp;]amp;]

解説

GDB をはじめとするデバッガは、プログラムが実行中もしくはクラッシュした時にその プログラムの ``内部'' で何が行なわれているか/行われていたかを調べるのに 使用されます。

GDB は、4 つの機能 (加えてこれらをサポートする機能) によって 実行中にバグを見つけることを手助けします。

» プログラムの動作を詳細に指定してプログラムを実行させる。

» 指定した条件でプログラムを停止させる。

» プログラムが止まった時に、何が起こったか調べる。

» バグによる副作用を修正し、別のバグを調べるためプログラムの状態を変更する。

GDB では C, C++, Modula-2 などで書かれたプログラムのデバッグが行なえます。 GNU Fortran コンパイラが完成すれば Fortran もサポートされます。

GDB はシェルコマンド gdb amp;で起動されます。いったん起動すると、GDB コマンド quit amp;を実行して終了するまで、端末からコマンドを読み続けます。 gdb amp;のオンラインヘルプは( gdb の中で) help amp;コマンドを実行すれば表示されます。

gdb amp; は引数やオプション無しで起動できますが、 たいてい、1 つか 2 つの引数を付けて起動します。実行プログラムを 引数にする場合は以下のようになります:

gdb program

また実行プログラムと core ファイルの両方を指定することもできます:

gdb program core

もし実行中のプロセスのデバッグを行ないたい場合には、 第 2 引数として core の代わりにプロセス ID を指定します:

gdb program 1234

これは GDB をプロセス ID 1234 amp; のプロセスに接続します(このとき` 1234 amp;'という名前のファイルが存在してはいけません。 GDB はまず core ファイルを最初にチェックしにいくからです)。

よく利用される GDB コマンドには以下のようなものがあります:

break [file:]function
  amp; ブレークポイントを amp; ( file amp;内の) function に設定します。
run [arglist]
  プログラムの実行を開始します(もしあれば arglist amp;を 引数として)。
bt バックトレース: プログラムのスタックを表示します。
print expr
  amp; 式の値を表示します。
c プログラムの実行を再開します。(たとえばブレークポイントで実行を中断した後で)
next 次のプログラム行を実行します。 その行内の全ての関数は 1 ステップで実行されます。
step 次のプログラム行を実行します。 もしその行に関数が含まれていれば、その関数内をステップ実行していきます。
help [name]
  GDB コマンド name amp;についての情報や、 GDB を使う上での一般的な情報を表示します。
quit GDB を終了します。
GDB の詳細については Using GDB: A Guide to the GNU Source-Level Debugger amp;, by Richard M. Stallman and Roland H. Pesch. を参照して下さい。 同じテキストは、 info amp; プログラム内の gdb amp; エントリからオンラインで参照できます。

オプション

オプション以外の引数は、実行ファイルと core ファイル (もしくはプロセス ID) を表します。つまりオプションフラグでもオプションフラグの引数でもない最初の 引数は ` -se amp;' オプションで指定するファイルと同じになり、(もしあれば)次の 2 番目の引数は ` -c amp;' オプションで指定するファイルと同じになります。

オプションの多くは、長い表記法と短い表記法の両方で指定することができま すが、ここではその両方を示します。 長い表記法は、どのオプションであるのかが明確であれば、短く切り詰めても 構いません。 (好みにより ` - amp;' の代わりに ` + amp;' が使用できますが、ここではよく用いられる表記で記します。)

全てのオプションとコマンドライン引数は指定した順番に処理されます。 ` -x amp;' オプションが使用されると、この順番は変わってきます。

-help
-h 短い説明つきで、全てのオプションを表示します。

-symbols=file
-s file
  amp; シンボルテーブルをファイル file amp;から読みます。

-exec=file
-e file
  amp; ファイル file amp; を実行可能ファイルとして利用します。 core dump と連係して pure data を調べるのにも用いられます。

-se=file
  amp; ファイル file amp; からシンボルテーブルを読み、同時にそれを実行可能ファイルとして利用します。

-core=file
-c file
  amp; ファイル file amp; を core dump として利用します。

-command=file
-x file
  amp; ファイル file amp;から GDB のコマンドを読み込み、実行します。

-directory=directory
-d directory
  amp; ソースファイルを探すサーチパスに directory amp; を追加します。

-nx
-n 初期化ファイル ` .gdbinit amp;' からコマンドを読み込みません。 通常は、 全てのコマンドオプションと引数が処理された後で、 初期化ファイル内のコマンドが実行されます。

-quiet
-q 起動時のメッセージおよび copyright を表示しません。 これらのメッセージはバッチモードでも抑制されます。

-batch バッチモードで動作します。` -x amp;' で指定したファイル(および、-nx か -n で抑制されていなければ ` .gdbinit amp;') 内の全てのコマンドを 処理した後、戻り値として 0 amp; を返して終了します。 コマンドファイル内の GDB コマンドの実行中にエラーが生じた場合は、 0 以外の値で終了します。

バッチモードは GDB をフィルタとして実行する場合、 たとえばプログラムをダウンロードして別のコンピュータ上で実行したりする場合 に便利です。 以下のメッセージ

Program exited normally.(プログラムは正常に終了しました。)

は通常、GDB の制御端末上で実行されるプログラムが終了するたびに 出力されるものですが、 バッチモードではこのようなメッセージは出力されません。

-cd=directory
  amp; カレントディレクトリの代わりに directory amp; を GDB の作業用ディレクトリとして実行します。

-fullname
-f Emacs が GDB をサブプロセスとして実行する際にこのオプションを付加します。 このとき GDB は、スタックフレームが表示される度(プログラムが中断する度を 含みます)に、完全なファイル名と行番号を標準的な認識しやすい形式で表示します。 この表示書式は 2 つの `  32 amp;' 文字、ファイル名、コロンで区切られた行番号と文字位置、改行の順になっ ています。これは Emacs→GDB インタフェースプログラムにおいて、 フレームに対応するソースコードを表示するために 2 つの `  32 amp;' 文字を使うことになっているからです。

-kernel
-k gdb をカーネルデバッグモードで使用します。 プロンプトは ``(kgdb)'' になります。

-wcore このオプションはカーネルデバッグモードで 「動作中の」カーネルをデバッグしている時のみ使用可能であり、 コアファイル (/dev/mem) を書き込み可能にします。

-b bps
  amp; リモートデバッグ用に GDB が利用するシリアルインタフェースの転送速度を (ボーレートまたはビット/秒で)セットします。

-tty=device
  amp; プログラムの標準入出力に device amp; を利用します。

関連項目

info 内の `gdb' エントリ amp;; 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.


4nov1991 gdb (1) GNU Tools

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what's wrong.”