SYMBOL_INFO構造体 (dbghelp.h)
シンボル情報を格納します。
構文
typedef struct _SYMBOL_INFO {
ULONG SizeOfStruct;
ULONG TypeIndex;
ULONG64 Reserved[2];
ULONG Index;
ULONG Size;
ULONG64 ModBase;
ULONG Flags;
ULONG64 Value;
ULONG64 Address;
ULONG Register;
ULONG Scope;
ULONG Tag;
ULONG NameLen;
ULONG MaxNameLen;
CHAR Name[1];
} SYMBOL_INFO, *PSYMBOL_INFO;
メンバー
SizeOfStruct
この構造体のサイズ (バイト単位)。 このメンバーは に設定する sizeof(SYMBOL_INFO)
必要があります。 データの合計サイズは であることに注意してください SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR)
。 1 つを減算する理由は、名前の最初の文字が構造体のサイズで考慮されるためです。
TypeIndex
シンボルを記述する型データを識別する一意の値。 この値はセッション間で保持されません。
Reserved[2]
このメンバーは、システム使用のために予約されています。
Index
シンボルの一意の値。 シンボルに関連付けられている値は、プロセスを実行するたびに同じであるとは限りません。
PDB シンボルの場合、シンボルのインデックス値は、名前またはアドレスによる検索によってシンボルが列挙または取得されるまで生成されません。 すべての CodeView シンボルと COFF シンボルのインデックス値は、シンボルが読み込まれるときに生成されます。
Size
シンボル サイズ (バイト単位) (シンボルがビットフィールド メンバーの場合はビット)。
この値は、モジュール シンボルが pdb ファイルからの場合にのみ意味があります。それ以外の場合、この値は通常 0 であり、無視する必要があります。
ModBase
シンボルを含むモジュールのベース アドレス。
Flags
このメンバーには、次の値の 1 つ以上を指定できます。
値 | 意味 |
---|---|
|
シンボルは CLR トークンです。 |
|
シンボルは定数です。 |
|
シンボルはエクスポート テーブルのシンボルです。 |
|
シンボルはフォワーダーです。 |
|
オフセットはフレーム相対です。 |
|
シンボルは既知の関数です。 |
|
シンボル アドレスは、中間言語ブロックの先頭を基準としたオフセットです。 これはマネージド コードにのみ適用されます。 |
|
シンボルはローカル変数です。 |
|
シンボルは管理されたメタデータです。 |
|
シンボルはパラメーターです。 |
|
シンボルはレジスタです。 Register メンバーが使用されます。 |
|
オフセットはレジスタの相対値です。 |
|
シンボルはマネージド コード スロットです。 |
|
シンボルはサンクです。 |
|
シンボルは、TLS データ領域へのオフセットです。 |
|
Value メンバーが使用されます。 |
|
シンボルは、 SymAddSymbol 関数によって作成された仮想シンボルです。 |
Value
定数の値。
Address
シンボルの先頭の仮想アドレス。
Register
レジスタ。
Scope
DIA スコープ。 詳細については、Visual Studio ドキュメントの デバッグ インターフェイス アクセス SDK を参照してください。 (このリソースは、一部の言語では使用できない場合があります
国など)
Tag
PDB 分類。 これらの値は、 SymTagEnum 列挙型の Dbghelp.h で定義されています。
NameLen
null で終わる文字を含まない、文字単位の名前の長さ。
MaxNameLen
Name バッファーのサイズ (文字数)。 このメンバーが 0 の場合、 Name メンバーは使用されません。
Name[1]
記号の名前。 symSetOptions 関数で SYMOPT_UNDNAME オプションを使用する場合は、名前を解除できます。
要件
要件 | 値 |
---|---|
Header | dbghelp.h |
再頒布可能パッケージ | DbgHelp.dll 5.1 以降 |