GDB-デバッグシンボル
A Debugging Symbol Tableコンパイルされたバイナリプログラムの命令を、ソースコードの対応する変数、関数、または行にマップします。このマッピングは次のようになります。
プログラム命令⇒アイテム名、アイテムタイプ、元のファイル、定義された行番号。
シンボルテーブルは、プログラムに埋め込むことも、別のファイルとして保存することもできます。したがって、プログラムのデバッグを計画している場合は、プログラムのデバッグに必要な情報を含むシンボルテーブルを作成する必要があります。
シンボルテーブルについて、次の事実を推測できます。
シンボルテーブルは、プログラムの特定のバージョンで機能します。プログラムが変更された場合は、新しいテーブルを作成する必要があります。
多くの場合、デバッグビルドは、リテール(非デバッグ)ビルドよりも大きく、低速です。デバッグビルドには、シンボルテーブルとその他の補助情報が含まれています。
自分でコンパイルしなかったバイナリプログラムをデバッグする場合は、作成者からシンボルテーブルを入手する必要があります。
GDBがシンボルテーブルからすべての情報を1行ずつ読み取れるようにするには、少し異なる方法でコンパイルする必要があります。通常、プログラムは次のようにコンパイルされます。
gcc hello.cc -o hello
これを行う代わりに、以下に示すように-gフラグを使用してコンパイルする必要があります。
gcc -g hello.cc -o hello