共用方式為


SymEnumSymbols 函式 (dbghelp.h)

列舉進程中的所有符號。

語法

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

參數

[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的使用者定義值。 這個參數通常由應用程式用來傳遞資料結構的指標,以提供回呼函式的內容。

傳回值

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

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

備註

所有 DbgHelp 函式,例如此函式都是單一執行緒。 因此,從一個以上的執行緒呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從一個以上的執行緒同步至此函式。

若要呼叫此函式的 Unicode 版本,請定義 DBGHELP_TRANSLATE_TCHAR

範例

如需範例,請參閱 列舉符號

需求

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

另請參閱

DbgHelp 函式

SymEnumSymbolsProc