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

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

[in, out] Line

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

戻り値

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

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

解説

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

関連項目

DbgHelp 関数

IMAGEHLP_LINE64

SymGetLineFromAddr64

SymInitialize