SymGetLineFromAddr 函式 (dbghelp.h)
找出指定位址的來源行。
語法
BOOL IMAGEAPI SymGetLineFromAddr(
[in] HANDLE hProcess,
[in] DWORD dwAddr,
[out] PDWORD pdwDisplacement,
[out] PIMAGEHLP_LINE Line
);
參數
[in] hProcess
原本傳遞至 SymInitialize 函式之進程的句柄。
[in] dwAddr
應該放置行的位址。 位址不需要位於線條界限上。 如果位址出現在行的開頭和行尾之前,就會找到該行。
[out] pdwDisplacement
行開頭或零的位移以位元組為單位。
[out] Line
IMAGEHLP_LINE64 結構的指標。
傳回值
如果函式成功,則傳回值為 TRUE。
如果函式失敗,則傳回值為 FALSE。 若要擷取擴充的錯誤資訊,請呼叫 GetLastError。
備註
呼叫端必須先正確配置Line緩衝區,並在呼叫SymGetLineFromAddr64之前填入IMAGEHLP_LINE64結構的必要成員。
此函式會傳回另一個函式可能重複使用之緩衝區的指標。 因此,請務必立即將傳回的數據複製到另一個緩衝區。
所有 DbgHelp 函式,例如此函式都是單個線程。 因此,從多個線程呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從多個線程同步處理到此函式。
若要呼叫此函式的 Unicode 版本,請定義 DBGHELP_TRANSLATE_TCHAR。 SymGetLineFromAddrW64 的定義如下 Dbghelp.h。
BOOL
IMAGEAPI
SymGetLineFromAddrW64(
_In_ HANDLE hProcess,
_In_ DWORD64 dwAddr,
_Out_ PDWORD pdwDisplacement,
_Out_ PIMAGEHLP_LINEW64 Line
);
#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetLineFromAddr64 SymGetLineFromAddrW64
#endif
此函式取代 SymGetLineFromAddr 函式。 如需詳細資訊,請參閱 更新的平台支援。 SymGetLineFromAddr 的定義如下:Dbghelp.h。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromAddr SymGetLineFromAddr64
#define SymGetLineFromAddrW SymGetLineFromAddrW64
#else
BOOL
IMAGEAPI
SymGetLineFromAddr(
_In_ HANDLE hProcess,
_In_ DWORD dwAddr,
_Out_ PDWORD pdwDisplacement,
_Out_ PIMAGEHLP_LINE Line
);
BOOL
IMAGEAPI
SymGetLineFromAddrW(
_In_ HANDLE hProcess,
_In_ DWORD dwAddr,
_Out_ PDWORD pdwDisplacement,
_Out_ PIMAGEHLP_LINEW Line
);
#endif
範例
如需範例,請參閱 依位址擷取符號資訊。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | dbghelp.h |
程式庫 | Dbghelp.lib |
Dll | Dbghelp.dll |
可轉散發套件 | DbgHelp.dll 5.1 或更新版本 |