SymEnumerateSymbols 函式 (dbghelp.h)
列舉指定模組的所有符號。
注意 此函式僅供相容性使用。 應用程式應該使用 SymEnumSymbols,這更快速且更強大。
語法
DBHLP_DEPRECIATED BOOL IMAGEAPI SymEnumerateSymbols(
[in] HANDLE hProcess,
[in] ULONG BaseOfDll,
[in] PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
[in, optional] PVOID UserContext
);
參數
[in] hProcess
進程的控制碼。 此控制碼先前必須傳遞至 SymInitialize 函式 。
[in] BaseOfDll
要列舉符號之模組的基底位址。
[in] EnumSymbolsCallback
接收符號資訊的回呼函式。 如需詳細資訊,請參閱 SymEnumerateSymbolsProc64。
[in, optional] UserContext
使用者定義的值或 Null。 這個值會傳遞至回呼函式。 一般而言,這個參數是由應用程式用來傳遞資料結構的指標,讓回呼函式建立某種類型的內容。
傳回值
如果函式成功,則傳回值為 TRUE。
如果函式失敗,則傳回值為 FALSE。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError。
備註
SymEnumerateSymbols64函式會列舉指定模組的所有符號。 模組資訊是由 BaseOfDll 參數所找到。 每個符號都會呼叫回呼函式一次,並傳遞每個符號的資訊。
所有 DbgHelp 函式,例如此函式都是單一執行緒。 因此,從多個執行緒呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從多個執行緒同步處理到此函式。
此函式的 Unicode 版本 SymEnumerateSymbolsW64 定義如下 Dbghelp.h。
BOOL
IMAGEAPI
SymEnumerateSymbolsW64(
__in HANDLE hProcess,
__in ULONG64 BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACK64W EnumSymbolsCallback,
__in_opt PVOID UserContext
);
此函式會取代 SymEnumerateSymbols 函式。 如需詳細資訊,請參閱 更新的平臺支援。 SymEnumerateSymbols 的定義如下 Dbghelp.h。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymEnumerateSymbols SymEnumerateSymbols64
#define SymEnumerateSymbolsW SymEnumerateSymbolsW64
#else
BOOL
IMAGEAPI
SymEnumerateSymbols(
__in HANDLE hProcess,
__in ULONG BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
__in_opt PVOID UserContext
);
BOOL
IMAGEAPI
SymEnumerateSymbolsW(
__in HANDLE hProcess,
__in ULONG BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback,
__in_opt PVOID UserContext
);
#endif
需求
目標平台 | Windows |
標頭 | dbghelp.h |
程式庫 | Dbghelp.lib |
Dll | Dbghelp.dll |
可轉散發套件 | DbgHelp.dll 5.1 或更新版本 |