Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
20.2.4. GDB でのプログラム内部値の表示
プログラムの内部変数の値を表示することは、プログラムの実行内容を理解する際に重要です。GDB は、内部変数の検査に使用できる複数のコマンドを提供します。このセクションでは、これらのコマンドの中で最も有用なものを説明します。
前提条件
- GDB デバッガーを理解していること
プログラムの内部の状態を表示するための GDB コマンド
p
(print)指定された引数の値を表示します。引数には通常、単純な値 1 つや構造など、複雑度の異なる変数名を指定できます。引数には、プログラム変数やライブラリー関数の使用、テストするプログラムに定義する関数など、現在の言語で有効な式も指定できます。
pretty-printer Python スクリプトまたは Guile スクリプトを使用して GDB を拡張し、
print
コマンドを使用して、(クラス、構造などの) データ構造をカスタマイズ表示することができます。bt
(backtrace)現在の実行ポイントに到達するために使用される関数呼び出しのチェーン、または実行が伝えられるまで使用される関数のチェーンを表示します。これは、原因を特定しにくい、深刻なバグ (セグメント障害など) を調査する場合に便利です。
backtrace
コマンドにfull
オプションを追加すると、ローカル変数も表示されます。bt
コマンドおよびinfo frame
コマンドを使用して表示されるデータをカスタマイズして表示するために、frame filter Python スクリプトで GDB を拡張できます。フレーム という用語は、1 つの関数呼び出しに関連付けられたデータを指します。info
info
コマンドは、さまざまな項目に関する情報を提供する汎用コマンドです。このコマンドでは、項目をオプションとして指定できます。-
info args
コマンドは、現在選択されているフレームの関数呼び出しの引数を表示します。 -
info locals
コマンドは、現在選択されているフレームにローカル変数を表示します。
使用できる項目を一覧表示するには、GDB セッションで
help info
コマンドを実行します。(gdb) help info
-
l
(list)-
プログラムが停止するソースコードの行を表示します。このコマンドは、プログラムの実行が停止した場合のみ利用できます。
list
は、厳密には内部状態を表示するコマンドではありませんが、ユーザーがプログラムの実行の次の手順で内部状態にどのような変更が発生するかを理解するのに役立ちます。
関連資料
- Red Hat Developer ブログエントリー: The GDB Python API
- GDB でのデバッグ: 10.9 Pretty Printing