次の方法で共有


SymGetSymFromName 関数 (dbghelp.h)

指定した名前のシンボルを検索します。

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

構文

BOOL IMAGEAPI SymGetSymFromName(
  [in]      HANDLE           hProcess,
  [in]      PCSTR            Name,
  [in, out] PIMAGEHLP_SYMBOL Symbol
);

パラメーター

[in] hProcess

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

[in] Name

シンボルが配置されるシンボル名。

[in, out] Symbol

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

戻り値

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

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

注釈

SymGetSymFromName64 関数は、指定された名前のシンボルを検索するために使用されます。 名前には、シンボル検索を 1 つのモジュールのシンボル テーブルに分離するモジュール プレフィックスを含めることができます。

モジュール プレフィックスは"module!" の形式です。 "!" 文字は、モジュール名とシンボル名の間の区切り記号です。 モジュール プレフィックスがない場合は、読み込まれる最初のモジュールから始めて、各モジュールのシンボル テーブルに対して直線的な方法で検索が実行されます。

2 つの理由から、モジュール プレフィックスを使用することをお勧めします。 最初に、シンボル検索がはるかに高速に行われます。 2 つ目は、遅延シンボルの読み込みがオンになっている場合、検索対象のモジュールごとにシンボルが読み込まれます。 シンボルが見つかると、シンボル情報は呼び出し元によって提供される シンボル バッファーにコピーされます。 呼び出し元はSymGetSymFromName64 を呼び出す前に、シンボル バッファーを適切に割り当て、IMAGEHLP_SYMBOL64構造体に必要なパラメーターを入力する必要があります。

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

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

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetSymFromName SymGetSymFromName64
#else
BOOL
IMAGEAPI
SymGetSymFromName(
    __in HANDLE hProcess,
    __in PCSTR Name,
    __inout PIMAGEHLP_SYMBOL Symbol
    );
#endif

要件

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

こちらもご覧ください

DbgHelp 関数

IMAGEHLP_SYMBOL64

SymFromName

SymInitialize