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 つ以上を指定できます。

意味
SYMFLAG_CLR_TOKEN
0x00040000
シンボルは CLR トークンです。
SYMFLAG_CONSTANT
0x00000100
シンボルは定数です。
SYMFLAG_EXPORT
0x00000200
シンボルはエクスポート テーブルのシンボルです。
SYMFLAG_FORWARDER
0x00000400
シンボルはフォワーダーです。
SYMFLAG_FRAMEREL
0x00000020
オフセットはフレーム相対です。
SYMFLAG_FUNCTION
0x00000800
シンボルは既知の関数です。
SYMFLAG_ILREL
0x00010000
シンボル アドレスは、中間言語ブロックの先頭を基準としたオフセットです。 これはマネージド コードにのみ適用されます。
SYMFLAG_LOCAL
0x00000080
シンボルはローカル変数です。
SYMFLAG_METADATA
0x00020000
シンボルは管理されたメタデータです。
SYMFLAG_PARAMETER
0x00000040
シンボルはパラメーターです。
SYMFLAG_REGISTER
0x00000008
シンボルはレジスタです。 Register メンバーが使用されます。
SYMFLAG_REGREL
0x00000010
オフセットはレジスタの相対値です。
SYMFLAG_SLOT
0x00008000
シンボルはマネージド コード スロットです。
SYMFLAG_THUNK
0x00002000
シンボルはサンクです。
SYMFLAG_TLSREL
0x00004000
シンボルは、TLS データ領域へのオフセットです。
SYMFLAG_VALUEPRESENT
0x00000001
Value メンバーが使用されます。
SYMFLAG_VIRTUAL
0x00001000
シンボルは、 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 以降

こちらもご覧ください

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName