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
行の先頭からのバイト単位の変位(0)。
[out] Line
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 以降 |