共用方式為


SymEnumSymbolsEx 函式 (dbghelp.h)

列舉進程中的所有符號。

語法

BOOL IMAGEAPI SymEnumSymbolsEx(
  [in]           HANDLE                         hProcess,
  [in]           ULONG64                        BaseOfDll,
  [in, optional] PCSTR                          Mask,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
  [in, optional] PVOID                          UserContext,
  [in]           DWORD                          Options
);

參數

[in] hProcess

進程的句柄。 此句柄之前必須傳遞至 SymInitialize 函式

[in] BaseOfDll

模組的基位址。 如果此值為零, 且 Mask 包含驚嘆號 (!) ,則函式會跨模組查看。 如果此值為零, 且 Mask 不包含驚嘆號,則函式會使用 SymSetContext 函式所建立的範圍。

[in, optional] Mask

通配符字串,表示要列舉的符號名稱。 文字可以選擇性地包含通配符 「*」 和 “?”。

若要指定特定模組或一組模組,請以指定模組的通配符字串開始文字,後面接著驚嘆號。 指定模組時,會忽略 BaseOfDll

意義
Foo
如果 BaseOfDll 不是零, SymEnumSymbols 會尋找名為 「foo」 的全域符號。

如果 BaseOfDll 為零, SymEnumSymbols 會在 最近呼叫 SymSetContext 函式所建立的範圍內尋找名為 “foo” 的本機符號。

Foo?
如果 BaseOfDll 不是零, 則 SymEnumSymbols 會尋找以 「foo」 開頭的全域符號,並在之後包含一個額外的字元,例如 「information」 和 「foot」。。

如果 BaseOfDll 為零, 則 SymEnumSymbols 會尋找以 「foo」 開頭的符號,並在之後包含一個額外的字元,例如 “word” 和 “foot”。 搜尋會位於 最近呼叫 SymSetContext 函式所建立的範圍內。

foo*!bar

SymEnumSymbols 會查看每個載入的模組,其開頭為 “foo” 的符號名稱為 “bar”。 它可以找到相符專案,例如“foot!bar”、“footlocker!bar” 和 “存取者!bar”。

*!*

SymEnumSymbols 會列舉每個載入模組中的每個符號。

[in] EnumSymbolsCallback

SymEnumSymbolsProc 回呼函式,可接收符號資訊。

[in, optional] UserContext

傳遞至回調函式或 NULL 的用戶定義值。 這個參數通常由應用程式用來傳遞數據結構的指標,以提供回呼函式的內容。

[in] Options

表示可能的選項。

意義
SYMENUM_OPTIONS_DEFAULT
1
使用預設選項。
SYMENUM_OPTIONS_INLINE
2
列舉內嵌符號。

傳回值

如果函式成功,則傳回值為 TRUE

如果函式失敗,傳回值為 FALSE。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError

規格需求

需求
目標平台 Windows
標頭 dbghelp.h
程式庫 DbgHelp.lib
Dll DbgHelp.dll
可轉散發套件 DbgHelp.dll 6.2 或更新版本