SymGetSymFromName 函式 (dbghelp.h)

找出指定名稱的符號。

注意 此函式僅供相容性使用。 應用程式應該使用 SymFromName
 

語法

BOOL IMAGEAPI SymGetSymFromName(
  [in]      HANDLE           hProcess,
  [in]      PCSTR            Name,
  [in, out] PIMAGEHLP_SYMBOL Symbol
);

參數

[in] hProcess

原本傳遞至 SymInitialize 函式之進程的句柄。

[in] Name

要尋找符號的符號名稱。

[in, out] Symbol

IMAGEHLP_SYMBOL64 結構的指標。

傳回值

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

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

備註

SymGetSymFromName64 函式用來尋找指定名稱的符號。 名稱可以包含模組前置詞,可將符號搜尋隔離至單一模組的符號表。

模組前置詞的格式為 「module」。。 “!” 字元是模組名稱和符號名稱之間的分隔符。 如果沒有模組前置詞,則會以線性方式在每個模組的符號數據表上執行搜尋,從載入的第一個模組開始。

基於兩個原因,最好使用模組前置詞。 首先,符號搜尋的速度會更快。 其次,當延遲的符號載入開啟時,搜尋會針對所搜尋的每個模組載入符號。 找到符號時,符號資訊會複製到呼叫端提供的 符號 緩衝區。 呼叫端必須先正確配置 Symbol 緩衝區,並在呼叫 SymGetSymFromName64 之前填入IMAGEHLP_SYMBOL64結構中的必要參數。

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

此函式會取代 SymGetSymFromName 函式。 如需詳細資訊,請參閱 更新的平台支援SymGetSymFromName 在 Dbghelp.h 中定義如下。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetSymFromName SymGetSymFromName64
#else
BOOL
IMAGEAPI
SymGetSymFromName(
    __in HANDLE hProcess,
    __in PCSTR Name,
    __inout PIMAGEHLP_SYMBOL Symbol
    );
#endif

規格需求

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

另請參閱

DbgHelp 函式

IMAGEHLP_SYMBOL64

SymFromName

SymInitialize