次の方法で共有


SYMBOL_INFOW 構造体 (dbghelp.h)

シンボル情報を格納します。

構文

typedef struct _SYMBOL_INFOW {
  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;
  WCHAR   Name[1];
} SYMBOL_INFOW, *PSYMBOL_INFOW;

メンバー

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 のドキュメントの 「Debug Interface Access SDK 」を参照してください。 (このリソースは、一部の言語では使用できない場合があります

国)を参照してください。

Tag

PDB 分類。 これらの値は、 SymTagEnum 列挙型の Dbghelp.h で定義されます。

NameLen

null で終わる文字を含まない、名前の長さ (文字単位)。

MaxNameLen

Name バッファーのサイズ (文字数)。 このメンバーが 0 の場合、 Name メンバーは使用されません。

Name[1]

記号の名前。 SYMOPT_UNDNAME オプションを SymSetOptions 関数と共に使用すると、名前を解除できます。

注釈

注意

dbghelp.h ヘッダーは、SYMBOL_INFOをエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
Header dbghelp.h
再頒布可能パッケージ DbgHelp.dll 5.1 以降

こちらもご覧ください

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName