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
這個成員可以是下列其中一或多個值。
價值 | 意義 |
---|---|
|
符號是 CLR 令牌。 |
|
符號是常數。 |
|
符號來自導出數據表。 |
|
符號是轉寄站。 |
|
位移是相對框架。 |
|
符號是已知的函式。 |
|
符號位址是相對於中繼語言區塊開頭的位移。 這僅適用於Managed程式代碼。 |
|
符號是局部變數。 |
|
符號是Managed元數據。 |
|
符號是參數。 |
|
符號是緩存器。 會使用 Register 成員。 |
|
位移是緩存器相對的。 |
|
符號是Managed程式代碼位置。 |
|
符號是 Thunk。 |
|
符號是 TLS 資料區域的位移。 |
|
會使用 Value 成員。 |
|
符號是由 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 或更新版本 |