ここで説明するコマンドによって、 ユーザ・プログラムの中で定義されているシンボル情報 (変数名、 関数名、 型名) に関する問い合わせを行うことができます。 この情報はユーザ・プログラムのテキストに固有のもので、 プログラムの実行時に変わるものではありません。 GDBはこの情報を、 ユーザ・プログラムのシンボル・テーブルの中、 または、 GDB起動時に指定されたファイル (ファイルの選択参照) の中で見つけるか、 ファイル管理コマンド (ファイルを指定するコマンド参照) の実行によって見つけます。
ときには、 参照する必要のあるシンボルの中に、 GDBが通常は単語の区切り文字として扱う文字が含まれていることがあるかもしれません。 特に多いのが、 他のソース・ファイルの中の静的変数を参照する場合です (プログラム変数参照)。 ファイル名は、 オブジェクト・ファイルの中にデバッグ・シンボルとして記録されていますが、 GDBは通常、 典型的なファイル名、 例えば`foo.c'を解析して、 3つの単語 `foo'、 `.'(ピリオド)、 `c'であるとみなします。 GDBが`foo.c'を単一のシンボルであると認識できるようにするには、 それを単一引用符で囲みます。 例えば、
p 'foo.c'::x
は、
x
の値をファイル`foo.c'のスコープの中で検索します。
info address symbol
whatis expr
whatis
$
のデータ型を表示します。
ptype typename
ptype expr
ptype
ptype
はwhatis
と異なります。
例えば、
変数宣言
struct complex {double real; double imag;} v;に対して、
whatis
、
ptype
はそれぞれ以下のような出力をもたらします。
(gdb) whatis v type = struct complex (gdb) ptype v type = struct complex { double real; double imag; }
whatis
と同様、
引数なしでptype
を使用すると、
値履歴の最後の値である$
の型を参照することになります。
info types regexp
info types
value
を含むすべての型に関する情報を表示し、
`i type ^value$'は、
名前がvalue
そのものである型に関する情報だけを表示します。
このコマンドはptype
とは2つの点で異なります。
まず第1にwhatis
と同様、
詳細な情報を表示しません。
第2に、
型が定義されているすべてのソース・ファイルを一覧表示します。
info source
info sources
info functions
info functions regexp
step
を含むすべての関数を見つけ、
`info fun ^step'は、
名前が文字列step
で始まるすべての関数を見つけます。
info variables
info variables regexp
set symbol-reloading on
set symbol-reloading off
symbol-reloading
の設定はoffのままにするべきです。
さもないと、
(異なるディレクトリやライブラリの中にある)
同じ名前を持ついくつかのモジュールを含むような大きなプログラムをリンクする際に、
GDB
はシンボルを破棄してしまうかもしれません。
show symbol-reloading
symbol-reloading
のカレントな設定
(on
またはoff
)
を表示します。
set opaque-type-resolution on
struct
、
class
、
または、
union
へのポインタとして宣言されている型
--例えば、struct MyType *
--
であり、
かつ、
struct MyType
(5)
の完全な宣言が行われているソース・ファイルとは異なるソース・ファイルにおいて使用される型のことです。
デフォルトはonです。
このサブコマンドの設定を変更しても、
ファイルのシンボルが次にロードされるまでは効力を持ちません。
set opaque-type-resolution off
{<no data fields>}
show opaque-type-resolution
maint print symbols filename
maint print psymbols filename
maint print msymbols filename
info sources
コマンドを使用することで、
これらのファイルがどれであるかを知ることができます。
代わりに`maint print psymbols'を使用すると、
GDB
が部分的にしか知らないシンボルに関する情報もダンプの中に含まれます。
これは、
GDBがざっと読みはしたものの、
まだ完全には読み込んでいないファイルに定義されているシンボルに関する情報です。
最後に`maint print msymbols'では、
GDBが何らかのシンボル情報を読み込んだオブジェクト・ファイルから、
最小限必要とされるシンボル情報がダンプされます。
GDBがどのようにしてシンボルを読み込むかについては、
ファイルを指定するコマンド
(のsymbol-file
の説明の部分)
を参照してください。