子プロセス procA が logB へのハンドルを作成するときに、デバッガーに侵入する方法を尋ねていますか? Process Explorer について言及したので、Windows を使用していると仮定します。
これを行う 1 つの方法は、Image File Execution Options
レジストリ キーを使用して、 を起動するたびprocA.exe
にデバッガを起動するように指定することです。デバッガーが起動したら、logB へのハンドルを作成するコードにブレークポイントを設定し、プロセスを続行できます。これは、Visual Studio だけでなく、任意のデバッガー (WinDbg や ntsd など、または AQTime などのプロファイリング ツール) で機能します。
これを行う別の方法は、すべての子プロセスにアタッチするようにデバッガーに指示することです。WinDbg または ntsd でこの動作を有効にする方法はいくつかあります。このようにして、デバッガーを親プロセスにアタッチすると、子プロセス procA に自動アタッチされ、適切なコードにブレークポイントを設定できます。
もう 1 つの方法は、DebugBreak()
logB へのハンドルを作成するときに関数を使用してブレークポイント例外を生成するようにコードを一時的に変更し、ジャストインタイム デバッグを使用してデバッガーをアタッチすることです。コードが例外フィルター式なしで構造化例外を処理する場合 (これは悪い考えです)、これは機能せず、驚くべき結果 (デッドロック、メモリ リークなど) が発生する可能性があることに注意してください。