SymGetSymFromAddr 関数 (dbghelp.h)

指定したアドレスのシンボルを検索します。

メモ この関数は互換性のためにのみ提供されます。 アプリケーションでは SymFromAddr を使用する必要があります。
 

構文

BOOL IMAGEAPI SymGetSymFromAddr(
  [in]            HANDLE           hProcess,
  [in]            DWORD            dwAddr,
  [out, optional] PDWORD           pdwDisplacement,
  [in, out]       PIMAGEHLP_SYMBOL Symbol
);

パラメーター

[in] hProcess

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

[in] dwAddr

シンボルが配置されるアドレス。 アドレスはシンボル境界上にある必要はありません。 アドレスがシンボルの先頭の後、シンボルの末尾 (シンボルの先頭とシンボル サイズ) の前にある場合は、シンボルが見つかります。

[out, optional] pdwDisplacement

記号の先頭からの変位、またはゼロ。

[in, out] Symbol

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

戻り値

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

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

注釈

SymGetSymFromAddr64 関数は、指定されたアドレスのシンボルを検索します。 モジュールは、アドレスが属するものを検索します。 モジュールが見つかると、そのシンボル テーブルで一致するものが検索されます。 シンボルが見つかると、シンボル情報が呼び出し元によって提供される シンボル バッファーにコピーされます。 呼び出し元は、シンボル バッファーを適切に割り当て、SymGetSymFromAddr64 を呼び出す前に、IMAGEHLP_SYMBOL64構造体に必要なパラメーターを入力する必要があります。

この関数など、すべての DbgHelp 関数はシングル スレッドです。 そのため、複数のスレッドからこの関数を呼び出すと、予期しない動作やメモリ破損が発生する可能性があります。 これを回避するには、複数のスレッドからのすべての同時呼び出しをこの関数に同期する必要があります。

この関数は SymGetSymFromAddr 関数よりも優先されます。 詳細については、「 プラットフォーム サポートの更新」を参照してください。 SymGetSymFromAddr は、Dbghelp.h で次のように定義されています。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetSymFromAddr SymGetSymFromAddr64
#else
BOOL
IMAGEAPI
SymGetSymFromAddr(
    __in HANDLE hProcess,
    __in DWORD dwAddr,
    __out_opt PDWORD pdwDisplacement,
    __inout PIMAGEHLP_SYMBOL Symbol
    );
#endif

要件

要件
対象プラットフォーム Windows
ヘッダー dbghelp.h
Library Dbghelp.lib
[DLL] Dbghelp.dll
再頒布可能パッケージ DbgHelp.dll 5.1 以降

こちらもご覧ください

DbgHelp 関数

IMAGEHLP_SYMBOL64

SymFromAddr

SymInitialize