SymInitializeW 関数 (dbghelp.h)
プロセスのシンボル ハンドラーを初期化します。
構文
BOOL IMAGEAPI SymInitializeW(
[in] HANDLE hProcess,
[in, optional] PCWSTR UserSearchPath,
[in] BOOL fInvadeProcess
);
パラメーター
[in] hProcess
呼び出し元を識別するハンドル。 この値は一意で 0 以外にする必要がありますが、プロセス ハンドルである必要はありません。 ただし、プロセス ハンドルを使用する場合は、必ず正しいハンドルを使用してください。 アプリケーションがデバッガーの場合は、デバッグ対象のプロセスのプロセス ハンドルを使用します。 SymLoadModuleEx などの関数を呼び出すと予期しない結果が発生する可能性があるため、別のプロセスをデバッグするときに、GetCurrentProcess によって返されるハンドルを使用しないでください。
このパラメーターは NULL
[in, optional] UserSearchPath
シンボル ファイルの検索に使用される、セミコロン (;)) で区切られたパスまたは一連のパス。 このパラメーターが NULL
- アプリケーションの現在の作業ディレクトリ
- _NT_SYMBOL_PATH環境変数
- _NT_ALTERNATE_SYMBOL_PATH環境変数
[in] fInvadeProcess
この値が TRUE
戻り値
関数が成功した場合、戻り値は TRUE
関数が失敗した場合、戻り値は FALSE
備考
SymInitialize 関数は、プロセスのシンボル ハンドラーを初期化するために使用されます。 シンボル ハンドラーのコンテキストでは、プロセスはシンボル情報を収集するときに使用する便利なオブジェクトです。 通常、シンボル ハンドラーは、デバッグ中のプロセスのシンボルを読み込む必要があるデバッガーやその他のツールによって使用されます。
SymInitialize に渡されるハンドルは、プロセスによって呼び出される他のすべてのシンボル ハンドラー関数に渡されるのと同じ値である必要があります。 呼び出し元を識別し、正しいシンボル情報を見つけるために関数が使用するハンドルです。 シンボル情報の使用が完了したら、SymCleanup 関数を呼び出して、シンボルが読み込まれるプロセスに関連付けられているすべてのリソースの割り当てを解除します。
シンボル ファイルの検索は、UserSearchPath パラメーターで指定されたすべてのパスに対して再帰的に実行されます。 そのため、検索でルート ディレクトリを指定すると、ドライブ全体が検索され、時間がかかる可能性があります。 プロセスの実行可能ファイルを含むディレクトリは、自動的には検索パスの一部ではないことに注意してください。 このディレクトリを検索パスに含めるには、
SymInitialize
この関数など、すべての DbgHelp 関数はシングル スレッドです。 そのため、複数のスレッドからこの関数を呼び出すと、予期しない動作やメモリ破損が発生する可能性があります。 これを回避するには、プロセス
この関数の Unicode バージョンを呼び出すには、DBGHELP_TRANSLATE_TCHARを定義します。
例
例については、「シンボル ハンドラーの初期化
手記
dbghelp.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SymInitialize を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | dbghelp.h |
ライブラリ | Dbghelp.lib |
DLL | Dbghelp.dll |
再頒布可能パッケージの | DbgHelp.dll 5.1 以降 |
関連項目
DbgHelp 関数 の
GetModuleFileNameEx の
symCleanup を
SymRefreshModuleList の
SymSetSearchPath の