SymEnumerateSymbols 関数 (dbghelp.h)
指定したモジュールのすべてのシンボルを列挙します。
構文
DBHLP_DEPRECIATED BOOL IMAGEAPI SymEnumerateSymbols(
[in] HANDLE hProcess,
[in] ULONG BaseOfDll,
[in] PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
[in, optional] PVOID UserContext
);
パラメーター
[in] hProcess
プロセスのハンドル。 このハンドルは、 SymInitialize 関数に以前に渡されている必要があります。
[in] BaseOfDll
シンボルを列挙するモジュールのベース アドレス。
[in] EnumSymbolsCallback
シンボル情報を受け取るコールバック関数。 詳細については、「 SymEnumerateSymbolsProc64」を参照してください。
[in, optional] UserContext
ユーザー定義値または NULL。 この値はコールバック関数に渡されます。 通常、このパラメーターは、コールバック関数が何らかの種類のコンテキストを確立できるようにするデータ構造へのポインターを渡すためにアプリケーションによって使用されます。
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報を取得するには、 GetLastError を呼び出します。
解説
SymEnumerateSymbols64 関数は、指定したモジュールのすべてのシンボルを列挙します。 モジュール情報は BaseOfDll パラメーターによって配置されます。 コールバック関数はシンボルごとに 1 回呼び出され、各シンボルの情報が渡されます。
この関数など、すべての DbgHelp 関数はシングル スレッドです。 そのため、複数のスレッドからこの関数を呼び出すと、予期しない動作やメモリ破損が発生する可能性があります。 これを回避するには、複数のスレッドからのすべての同時呼び出しをこの関数に同期する必要があります。
この関数の Unicode バージョン である SymEnumerateSymbolsW64 は、Dbghelp.h で次のように定義されています。
BOOL
IMAGEAPI
SymEnumerateSymbolsW64(
__in HANDLE hProcess,
__in ULONG64 BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACK64W EnumSymbolsCallback,
__in_opt PVOID UserContext
);
この関数は SymEnumerateSymbols 関数よりも 優先されます。 詳細については、「 プラットフォーム サポートの更新」を参照してください。 SymEnumerateSymbols は、Dbghelp.h で次のように定義されています。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymEnumerateSymbols SymEnumerateSymbols64
#define SymEnumerateSymbolsW SymEnumerateSymbolsW64
#else
BOOL
IMAGEAPI
SymEnumerateSymbols(
__in HANDLE hProcess,
__in ULONG BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,
__in_opt PVOID UserContext
);
BOOL
IMAGEAPI
SymEnumerateSymbolsW(
__in HANDLE hProcess,
__in ULONG BaseOfDll,
__in PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback,
__in_opt PVOID UserContext
);
#endif
要件
対象プラットフォーム | Windows |
ヘッダー | dbghelp.h |
Library | Dbghelp.lib |
[DLL] | Dbghelp.dll |
再頒布可能パッケージ | DbgHelp.dll 5.1 以降 |