Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
gdb - GNU デバッガー
書式
gdb [-help] [-nh] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c core] [-p procID] [-x cmds] [-d dir] [prog|prog procID|prog core]
説明
GDB をはじめとするデバッガーは、プログラムが実行中またはクラッシュした時に、 そのプログラ ムの「内部」で何が行なわれているか/行われていたかを調べるのに使用されます。 GDB は、4 つの機能 (加えてこれらをサポートする機能) によって 実行中にバグを見つけることを 手助けします。 • プログラムの動作を詳細に指定してプログラムを実行させる。 • 指定した条件でプログラムを停止させる。 • プログラムが止まった時に、何が起こったか調べる。 • バグによる副作用を修正し、別のバグを調べるためプログラムの状態を変更する。 GDB では C, C++, Fortran, Modula-2 で書かれたプログラムのデバッグが行なえます。 GDB はシェルコマンド "gdb" で起動されます。 いったん起動すると、GDB コマンド "quit" を実行 して終了するまで、 端末からコマンドを読み続けます。 GDB のオンラインヘルプは、GDB の中から "help" コマンドを実行して見ることができます。 "gdb" は引数やオプション無しで起動できますが、 たいていは 1 つか 2 つの引数をつけて起動し ます。 実行プログラムを引数にする場合は以下のようにします。 gdb program また実行プログラムと core ファイルの両方を指定することもできます。 gdb program core もし実行中のプロセスのデバッグを行ないたい場合には、 第 2 引数として core の代わりにプロセ ス ID を指定するか、あるいはオプション "-p" を用います: gdb program 1234 gdb -p 1234 こうすれば GDB をプロセス 1234 にアタッチできます。 -p を用いる場合は、 program のファイル 名は省略することができます。 よく利用される GDB コマンドには以下のようなものがあります。 break [file:]function プレークポイントを (file 内の) function に設定します。 run [arglist] プログラムの実行を開始します (もしあれば arglist を引数として)。 bt バックトレース: プログラムのスタックを表示します。 print expr 式の値を表示します。 c プログラムの実行を再開します (たとえばブレークポイントで実行を中断した後)。 next 次のプログラム行を実行します (停止状態の後)。 その行内のすべての関数は 1 ステップで実 行されます。 edit [file:]function 現在中断している場所のプログラム行をエディターで開きます。 list [file:]function 現在中断している場所の近辺のプログラムソースを表示します。 step 次のプログラム行を実行します (停止状態の後)。 もしその行に関数が含まれていれば、その関 数内をステップ実行していきます。 help [name] GDB コマンド 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) を指定します。 つまりオプションフラグと関連づいていない最初の引数は、 -se オプションで指定するファイルと 同じになります。 また、もしも2番目があれば、 -c オプションで指定するファイルと同じになりま す。 オプションの多くは、 長い表記法と短い表記法の両方で指定することができますが、 ここで はその両方を示します。 長い表記法は、 どのオプションであるのかが明確であれば、 短く切り詰 めても構いません。 (好みにより - の代わりに + が使用できますが、ここではよく用いられる表記 で記します。) すべてのオプションとコマンドライン引数は、 指定した順番に処理されます。 -x オプションが使 用されると、 この順番は変わります。 -help -h 短い説明つきで、 すべてのオプションを表示します。 -symbols=file -s file シンボルテーブルをファイル file から読みます。 -write 実行ファイルやコアファイルへの書き込みを有効にします。 -exec=file -e file ファイル file を実行可能ファイルとして利用します。 core dump と連係して pure data を調 べるのにも用いられます。 -se=file ファイル file からシンボルテーブルを読み、 同時にそれを実行可能ファイルとして利用しま す。 -core=file -c file ファイル file を core dump として利用します。 -command=file -x file ファイル file から GDB のコマンドを読み込み、実行します。 -ex command 指定された GDB command を実行します。 -directory=directory -d directory ソースファイルを探す検索パスに directory を追加します。 -nh ~/.config/gdb/gdbinit、 ~/.gdbinit、 ~/.config/gdb/gdbearlyinit、 ~/.gdbearlyinit の各 ファイルから、 コマンドを実行しません。 -nx -n ~/.gdbinit または .gdbearlyinit の初期化ファイルからコマンド実行しません。 -quiet -q 起動時のメッセージおよび copyright を表示しません。 これらのメッセージはバッチモードで も抑制されます。 -batch バッチモードで動作します。 -x で指定したファイル (および抑制されていなければ .gdbinit ファイル) 内の全てのコマンドを処理した後、戻り値として 0 を返して終了します。 コマンド ファイル内の GDB コマンドの実行中にエラーが生じた場合は、 0 以外の値で終了します。 バッチモードは GDB をフィルタとして実行する場合、 たとえばプログラムをダウンロードして 別のコンピュータ上で実行したりする場合 に便利です。 以下のメッセージ Program exited normally. (プログラムは正常に終了しました。) は通常、GDB の制御端末上で実行されるプログラムが終了するたびに 出力されるものですが、 バッチモードではこのようなメッセージは出力されません。 -cd=directory カレントディレクトリの代わりに directory を GDB の作業用ディレクトリとして実行します。 -fullname -f Emacs が GDB をサブプロセスとして実行する際に、 このオプションを付加します。 このとき GDB は、スタックフレームが表示されるたびに (プログラムが中断するたびに)、 完全なファイ ル名と行番号を標準的な認識しやすい形式で表示します。 この表示書式は 2 つの 32 文 字、ファイル名、行番号とコロンで区切られた文字位置、改行の順になっています。 これは Emacs-GDB インタフェースプログラムにおいて、 フレームに対応するソースコードを表示する ために 2 つの 32 文字を使うことになっているからです。 -b bps リモートデバッグ用に GDB が利用するシリアルインタフェースの回線速度を (ボーレートまた はビット/秒で) 設定します。 -tty=device プログラムの標準入出力に device を利用します。
関連項目
GDB の完全なドキュメントは Texinfo マニュアルとしてメンテナンスされています。"info" と "gdb" の両プログラム、および GDB の Texinfo ドキュメントが適切にインストールされていれ ば、以下のコマンド info gdb を実行して完全なマニュアルを参照できます。 Using GDB: A Guide to the GNU Source-Level Debugger, Richard M. Stallman and Roland H. Pesch, July 1991.
著作権
Copyright (c) 1988-2022 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "Free Software" and "Free Software Needs Free Documentation", with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below. (a) FSF の裏表紙には、 以下の文章が記述されています: "You are free to copy and modify this GNU Manual. Buying copies from GNU Press supports the FSF in developing GNU and promoting software freedom."