次の方法で共有


SymGetLineFromAddr64 関数 (dbghelp.h)

指定したアドレスのソース行を検索します。

構文

BOOL IMAGEAPI SymGetLineFromAddr64(
  [in]  HANDLE           hProcess,
  [in]  DWORD64          qwAddr,
  [out] PDWORD           pdwDisplacement,
  [out] PIMAGEHLP_LINE64 Line64
);

パラメーター

[in] hProcess

SymInitialize 関数に最初に渡されたプロセスのハンドル。

[in] qwAddr

行を配置する必要があるアドレス。 アドレスを行境界に置く必要はありません。 アドレスが行の先頭の後、行の末尾の前に表示される場合は、行が見つかります。

[out] pdwDisplacement

行の先頭からの変位 (バイト単位)、または 0。

[out] Line64

IMAGEHLP_LINE64構造体へのポインター。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報を取得するには、 GetLastError を呼び出します。

解説

呼び出し元はSymGetLineFromAddr64 を呼び出す前に、Line バッファーを適切に割り当て、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
Library Dbghelp.lib
[DLL] Dbghelp.dll
再頒布可能パッケージ DbgHelp.dll 5.1 以降

関連項目

DbgHelp 関数

IMAGEHLP_LINE64

SymGetLineFromName64

SymInitialize