共用方式為


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)。 減去其中一個字元的原因是名稱中的第一個字元會計入 結構的大小。

TypeIndex

識別描述符號之型別數據的唯一值。 此值不會在會話之間保存。

Reserved[2]

此成員保留供系統使用。

Index

符號的唯一值。 每次執行進程時,與符號相關聯的值不保證相同。

若為 PDB 符號,除非依名稱或位址列舉或擷取符號,否則不會產生符號的索引值。 載入符號時,會產生所有 CodeView 和 COFF 符號的索引值。

Size

符號大小,以位元組為單位。 只有當模組符號來自 pdb 檔案時,這個值才有意義;否則,此值通常是零,而且應該忽略。

ModBase

包含符號之模組的基位址。

Flags

這個成員可以是下列其中一或多個值。

價值 意義
SYMFLAG_CLR_TOKEN
0x00040000
符號是 CLR 令牌。
SYMFLAG_CONSTANT
0x00000100
符號是常數。
SYMFLAG_EXPORT
0x00000200
符號來自導出數據表。
SYMFLAG_FORWARDER
0x00000400
符號是轉寄站。
SYMFLAG_FRAMEREL
0x00000020
位移是相對框架。
SYMFLAG_FUNCTION
0x00000800
符號是已知的函式。
SYMFLAG_ILREL
0x00010000
符號位址是相對於中繼語言區塊開頭的位移。 這僅適用於Managed程式代碼。
SYMFLAG_LOCAL
0x00000080
符號是局部變數。
SYMFLAG_METADATA
0x00020000
符號是Managed元數據。
SYMFLAG_PARAMETER
0x00000040
符號是參數。
SYMFLAG_REGISTER
0x00000008
符號是緩存器。 會使用 Register 成員。
SYMFLAG_REGREL
0x00000010
位移是緩存器相對的。
SYMFLAG_SLOT
0x00008000
符號是Managed程式代碼位置。
SYMFLAG_THUNK
0x00002000
符號是 Thunk。
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]

符號的名稱。 如果 SYMOPT_UNDNAME 選項與 SymSetOptions 函式搭配使用,則名稱可能會取消取消編碼。

言論

注意

dbghelp.h 標頭會將SYMBOL_INFO定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
標頭 dbghelp.h
可轉散發 DbgHelp.dll 5.1 或更新版本

另請參閱

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName