重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

カテゴリがちょっと違うかも知れませんが適当なのがなかったので、ここで質問させてください。

Visual Studioで「プロセスにアタッチ」というのを使うと既に起動しているプロセスをデバッグ可能な状態にできますが、その逆をする方法はありませんか?
つまり、起動しているプロセス側からVisual Studioに接続してデバッグ中にしたいのです。そういうことを行うAPIやその他方法があれば、そのプロセス側となるソフトにそういう処理を埋め込みたいと考えています。
なお、Visual Studioを手動で操作して「デバッグ開始」する方法はNGです。

Visual Studio側は先に起動しているものとします。

よろしくお願いします。

A 回答 (2件)

No.1です。



○WinXP(32bit)
>先に起動しているVisual Studioを...
う~ん、望みを叶えるには面倒な細工が必要かも知れません。
何しろ Visual Studio は複数起動できるし、統合環境なので色々な状態を持っているので...
その辺を解決した自前の処理やマクロが用意できれば、レジストリに登録してある vsjitdebugger.exe の代わりにすれば良い気がします(vsjitdebuggerについてはググると幾つも見つかります)。

○Win7(64bit)
触れた事が無いので正確性を欠きますが、URLのような説明があります。
 図3の後の "3 つ目の方法は Just In Time (JIT) デバッグを使用する方法で..."
と書いてある部分です。
見ると、オンライン解決策が標準なので、それを無効化しなければならないように思えます。

参考URL:http://msdn.microsoft.com/ja-jp/library/ff951239 …
    • good
    • 0
この回答へのお礼

返事が遅くなってすみません。

>>先に起動しているVisual Studioを...
>う~ん、望みを叶えるには面倒な細工が必要かも知れません。
>何しろ Visual Studio は複数起動できるし、統合環境なので色々な状態を持っているので...

「デバッグしますか?」ダイアログに先に起動しているVisual Studioのインスタンスが出てきていれば、その中から選択するくらいの手動操作は入ってもよかったのですが。。。


> 図3の後の "3 つ目の方法は Just In Time (JIT) デバッグを使用する方法で..."

ありがとうございます。こちらの情報は参考になりました。
「レポートから除外するプログラム」に指定することによって、「デバッグしますか?」ダイアログは出るようになりました。
結局、その後Visual Studio側からプロセスにアタッチする操作が必要になるのですが、とりあえずその方法で当面はやり過ごすことにします。

お礼日時:2011/11/17 11:46

>Visual Studioを手動で操作して「デバッグ開始」する方法はNG...


ここは希望に添うか微妙ですが、処理を中断してデバッガに接続するように仕向ける、という方法なら
DebugBreak();
を任意の位置で呼べば、デバッガを催促できます。

デバッグを始めるまで、OSや環境の設定によって多少違いがあると思いますが...
    • good
    • 0
この回答へのお礼

ありがとうございます。

試してみたところ次のようになりました。

○WinXP(32bit)
  確かにDebugBreak()でダイアログが出て、「デバッグするか?」どうかを訊いてきました。
  しかし、新しいVisual Studioのインスタンスをデバッガとして起動しようとします。そうではなくて、先に起動しているVisual Studioをデバッガとしてアタッチして欲しいのですが・・・

○Win7(64bit)
  DebugBreak()を呼び出しても、何も起きませんでした。
  タスクマネージャで見ているとそのプロセスはDebugBreak()呼び出し後2~3秒間は生きているようですが、その後タスクマネージャからスッと消えるだけでWinXPのときのような「デバッグしますか?」ダイアログが出ないです。


とにかくありがとうございました。
他に何か方法があればお願いします。

お礼日時:2011/11/11 15:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!