SymInitialize

SymInitialize 関数 (dbghelp.h) はプロセスのシンボルハンドラを初期化する。

SymInitialize hProcess, UserSearchPath, fInvadeProcess

hProcess : [intptr] 呼び出し元を識別するハンドル。一意で 0 以外であればよく、必ずしもプロセスハンドルである必要はない。プロセスハンドルを使う場合は正しいものを渡すこと。デバッガであればデバッグ対象プロセスのハンドルを使うこと。GetCurrentProcess で得たハンドルは使わないこと。複数コンポーネントが同時に dbghelp を使っているときに予期しない結果を招く可能性がある。NULL は不可。
UserSearchPath : [str] シンボルファイル検索用のパス。複数パスはセミコロン (;) で区切る。NULL を渡すと以下のソースからシンボルパスを構築しようとする:
fInvadeProcess : [int] TRUE の場合、プロセス内のロード済みモジュールを列挙して各モジュールに対して実質的に SymLoadModule64 を呼び出す。

(プラグイン / モジュール : dbghelp.dll)

解説

SymInitialize 関数 (dbghelp.h) はプロセスのシンボルハンドラを初期化する。

[戻り値]
成功時は TRUE、失敗時は FALSE を返す。拡張エラー情報は GetLastError で取得する。

[備考]
SymInitialize はプロセスのシンボルハンドラを初期化する。SymInitialize
に渡すハンドルは、そのプロセスで呼び出す他のシンボルハンドラ関数すべてに同じ値を渡す必要がある。使用後は SymCleanup
を呼んで関連リソースを解放すること。UserSearchPath
に指定したパスに対してはサブディレクトリまで再帰的に検索されるため、ルートを指定するとドライブ全体を検索することになり時間がかかる。プロセス実行可能ファイルのあるディレクトリは自動的には検索パスに含まれない。含めたい場合は
GetModuleFileNameEx を呼んでパスを取得し UserSearchPath に追加する。SymInitialize
を再度呼ぶ前に必ず SymCleanup を呼ぶこと。fInvadeProcess が TRUE
の呼び出しでモジュール一覧を再ロードしたい場合は SymRefreshModuleList を使用する。DbgHelp
の関数は単一スレッドで動作する。Unicode 版を使うには DBGHELP_TRANSLATE_TCHAR を定義する。

情報

プラグイン / モジュールdbghelp.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の dbghelp.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_dbghelp_gen2.hs