シンボルとシンボル タグ

コンパイルされたプログラムに関するデバッグ情報は、プログラム データベース (.pdb) ファイルにシンボルとして格納され、Debug Interface Access (DIA) SDK API を使用してアクセスできます。 すべてのシンボルには、IDiaSymbol::get_symTagIDiaSymbol::get_symIndexId プロパティがあります。 symTag プロパティは、SymTagEnum 列挙型の列挙体によって定義されているシンボルの種類を示します。 symIndexId プロパティは、シンボルの各インスタンスの一意識別子を含む DWORD 値です。

シンボルには、シンボルに関する追加情報と他のシンボル への参照を指定できるプロパティもあります (多くの場合、IDiaSymbol::get_lexicalParent または IDiaSymbol::get_classParent)。 参照が含まれているプロパティを照会すると、参照が IDiaSymbol オブジェクトとして返されます。 このようなプロパティは、同じ名前の、ただし"Id" というサフィックスが付けられた、別のプロパティと常にペアになります (たとえば、IDiaSymbol::get_lexicalParentIdIDiaSymbol::get_classParentId など)。 「シンボルの場所」、「シンボル型の構文階層」、および「シンボル型のクラス階層」の表には、さまざまな種類の各シンボルについてプロパティの概要が示されています。 これらのプロパティには、他のシンボルに関する関連情報や他のシンボルへの参照が含まれている場合があります。 *Id プロパティは、関連するプロパティの序数識別子にすぎないため、追加の説明は省略されています。 これらは、パラメーターを明確にするために必要な場合にのみ言及されています。

プロパティへのアクセスを試みたとき、エラーが発生せず、シンボルのプロパティに値が割り当てられている場合、プロパティの "get" メソッドは S_OK を返します。 戻り値が S_FALSE の場合は、プロパティが現在のシンボルに対して無効であることを示します。

このセクションの内容

シンボルの場所

シンボルが持つことができるさまざまな種類の場所について説明します。

シンボル型の構文階層

ファイル、モジュール、関数など、構文階層を形成するシンボル型について説明します。

シンボル型のクラス階層

クラス、配列、関数の戻り値の型など、さまざまな言語要素に対応するシンボル型について説明します。

関連項目