SymGetLineFromName 函式 (dbghelp.h)
找出指定模組、檔案名和行號的來源行。
語法
BOOL IMAGEAPI SymGetLineFromName(
[in] HANDLE hProcess,
[in, optional] PCSTR ModuleName,
[in, optional] PCSTR FileName,
[in] DWORD dwLineNumber,
[out] PLONG plDisplacement,
[in, out] PIMAGEHLP_LINE Line
);
參數
[in] hProcess
原本傳遞至 SymInitialize 函式之進程的控制碼。
[in, optional] ModuleName
要在其中放置一行的模組名稱。
[in, optional] FileName
要在其中放置一行的檔案名。 如果應用程式有多個具有此名稱的來源檔案,請務必指定完整路徑。
[in] dwLineNumber
要找到的行號。
[out] plDisplacement
行開頭或零的位移以位元組為單位。
[in, out] Line
IMAGEHLP_LINE64結構的指標。
傳回值
如果函式成功,則傳回值為 TRUE。
如果函式失敗,則傳回值為 FALSE。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError。
備註
呼叫端必須先正確配置Line緩衝區,並在呼叫SymGetLineFromName64之前填入IMAGEHLP_LINE64結構的必要成員。
呼叫此函式之前,請先呼叫 SymInitialize、 SymSetOptions和 SymLoadModule64,確定符號已正確初始化。
此函式會傳回另一個函式可能重複使用之緩衝區的指標。 因此,請務必立即將傳回的資料複製到另一個緩衝區。
所有 DbgHelp 函式,例如此函式都是單一執行緒。 因此,從多個執行緒呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從多個執行緒同步處理到此函式。
若要呼叫此函式的 Unicode 版本,請定義DBGHELP_TRANSLATE_TCHAR。 SymGetLineFromNameW64 的定義如下:Dbghelp.h。
BOOL
IMAGEAPI
SymGetLineFromNameW64(
__in HANDLE hProcess,
__in_opt PCWSTR ModuleName,
__in_opt PCWSTR FileName,
__in DWORD dwLineNumber,
__out PLONG plDisplacement,
__inout PIMAGEHLP_LINEW64 Line
);
#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetLineFromName64 SymGetLineFromNameW64
#endif
此函式會取代 SymGetLineFromName 函式。 如需詳細資訊,請參閱 更新的平臺支援。 SymGetLineFromName 的定義如下 Dbghelp.h。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromName SymGetLineFromName64
#else
BOOL
IMAGEAPI
SymGetLineFromName(
__in HANDLE hProcess,
__in_opt PCSTR ModuleName,
__in_opt PCSTR FileName,
__in DWORD dwLineNumber,
__out PLONG plDisplacement,
__inout PIMAGEHLP_LINE Line
);
#endif
範例
如需範例,請參閱 依名稱擷取符號資訊。
需求
目標平台 | Windows |
標頭 | dbghelp.h |
程式庫 | Dbghelp.lib |
Dll | Dbghelp.dll |
可轉散發套件 | DbgHelp.dll 5.1 或更新版本 |