SymEnumSymbols 関数 (dbghelp.h)
プロセス内のすべてのシンボルを列挙します。
構文
BOOL IMAGEAPI SymEnumSymbols(
[in] HANDLE hProcess,
[in] ULONG64 BaseOfDll,
[in, optional] PCSTR Mask,
[in] PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
[in, optional] PVOID UserContext
);
パラメーター
[in] hProcess
プロセスへのハンドル。 このハンドルは、 SymInitialize 関数に以前に渡されている必要があります。
[in] BaseOfDll
モジュールのベース アドレス。 この値が 0 で 、Mask に感嘆符 (!) が含まれている場合、関数はモジュール間で検索されます。 この値が 0 で 、Mask に感嘆符が含まれていない場合、関数は SymSetContext 関数によって確立されたスコープを使用します。
[in, optional] Mask
列挙するシンボルの名前を示すワイルドカード文字列。 必要に応じて、テキストにワイルドカード "*" と "?"を含めることができます。
特定のモジュールまたはモジュールのセットを指定するには、モジュールを指定するワイルドカード文字列でテキストを開始し、その後に感嘆符を付けます。 モジュールを指定する場合、 BaseOfDll は無視されます。
値 | 意味 |
---|---|
|
BaseOfDll が 0 でない場合、SymEnumSymbols は "foo" という名前のグローバル シンボルを検索します。
BaseOfDll が 0 の場合、SymEnumSymbols は、SymSetContext 関数の最新の呼び出しによって確立されたスコープ内で "foo" という名前のローカル シンボルを検索します。 |
|
BaseOfDll が 0 でない場合、SymEnumSymbols は"foo" で始まり、その後に "fool" や "foot" などの 1 つの余分な文字を含むグローバル シンボルを探します。
BaseOfDll が 0 の場合、SymEnumSymbols は "foo" で始まり、その後に "fool" や "foot" などの 1 つの余分な文字を含むシンボルを探します。 検索は、 SymSetContext 関数の最新の呼び出しによって確立されたスコープ内にあります。 |
|
SymEnumSymbols は、"bar" という名前のシンボルのテキスト "foo" で始まる読み込まれたすべてのモジュールを検索します。 "foot!bar"、"footlocker!bar"、"fool!bar" などの一致が見つかります。 |
|
SymEnumSymbols は、読み込まれたすべてのモジュール内のすべてのシンボルを列挙します。 |
[in] EnumSymbolsCallback
シンボル情報を受け取る SymEnumSymbolsProc コールバック関数。
[in, optional] UserContext
コールバック関数 ( NULL) に渡されるユーザー定義値。 通常、このパラメーターは、コールバック関数のコンテキストを提供するデータ構造へのポインターを渡すためにアプリケーションによって使用されます。
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報を取得するには、 GetLastError を呼び出します。
解説
この関数など、すべての DbgHelp 関数はシングル スレッドです。 そのため、複数のスレッドからこの関数を呼び出すと、予期しない動作やメモリ破損が発生する可能性があります。 これを回避するには、複数のスレッドからのすべての同時呼び出しをこの関数に同期する必要があります。
この関数の Unicode バージョンを呼び出すには、DBGHELP_TRANSLATE_TCHARを定義 します。
例
例については、「シンボルの列挙」をご覧ください。
要件
対象プラットフォーム | Windows |
ヘッダー | dbghelp.h |
Library | Dbghelp.lib |
[DLL] | Dbghelp.dll |
再頒布可能パッケージ | DbgHelp.dll 5.1 以降 |