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結構的必要成員。

呼叫此函式之前,請先呼叫 SymInitializeSymSetOptionsSymLoadModule64,確定符號已正確初始化。

此函式會傳回另一個函式可能重複使用之緩衝區的指標。 因此,請務必立即將傳回的資料複製到另一個緩衝區。

所有 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 或更新版本

另請參閱

DbgHelp 函式

IMAGEHLP_LINE64

SymGetLineFromAddr64

SymInitialize