読者です 読者をやめる 読者になる 読者になる

他のプロセスから起動されるアプリのデバッグ法(特に起動時)

プログラミング

方法1・DebugBreak関数

WindowsのAPIであるDebugBreak関数を仕込んでおきます。ただし、この関数の場所に来ると必ず中断するので、DebugBreakを仕込むのは起動時がいいかもしれません。

方法2・レジストリに設定を記述する

アプリ起動時にデバッガが起動するようレジストリに設定を書きこんでおきます。まず、
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution options
上記の場所にまずデバッグしたいアプリの名前でキーを作成します。
次に先ほど作った場所に文字列のバリューを作成します。

バリュー名:debugger
文字列:vsjitdebugger.exe

以上で設定は完了。これでキー名のアプリが起動するときにデバッガが自動で起動するようになります。

おまけ(問題の報告方法を選択)

Windows7*1ではデフォルトではデバッガ起動時に解決策の検索が始まってしまい、デバッガへ移動することができません。すぐにデバッガに移動したいという場合は設定を変える必要があります。
スタートメニューのプログラムとファイルの検索で「問題の報告方法を選択」と入力して、
同名の項目を選択すると次のウィンドウが表示されます。

ここで上から3番目の項目を選択すると、すぐにデバッグするかどうかを尋ねる選択肢が出てきます。

余談

上記の方法によるデバッグVisual StudioのProfessional以上でないとできません。家で使っているのはExpressなので使用できず。

*1:Vistaも同様かも