- ベストアンサー
Visual Studio リモートデバッグについて
- Visual StudioのPro/Teamでリモートデバッグができるのか調べています。
- リモートデバッグは2台のコンピューターを用意して、片方のプログラムをデバッグしながら制御することができます。
- Visual Studioのリモートデバッグではステップ実行やアセンブラ表示、レジスタの様子、メモリーの様子、変数の様子などを確認することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
実際に自分ではやったことないですが、自分なりの理解の範囲で… 基本的にはPCを2台、用意して、 片方はデバッグしたいプログラム(debugee = デバッギ)を動かし、 他方はデバッガ = VisualStudio を動かします。 2台のPC間はなんらかの通信(LAN等)で繋ぎます。 何故そんなことをする必要があるか? 1台の PC で GUI やグラフィック等のデバッグをしたことがあるなら分かると思いますが、 たとえば、 ボタンを連打すると画面表示がくずれる などのバグを、1台の PC 上で対象プログラムとデバッガ(VisualStudio)を同時に動かしてデバッグすると バグが発生(画面がくずれる)した瞬間にプログラムがブレークポイントで止まって、 デバッガに制御が移ります。 ※表示処理の関数にブレークポイントをセットしておいた場合。 この場合、プログラムは停止しているので、バグが発生している状況(表示がくずれた画面)は 表示処理の前や途中だったりして、まともに表示されない状態になっています。 また、プログラムがブレークポイントで停止してデバッガがアクティブになると、デバッガが最前面に表示されるため、 デバッグ対象のプログラムは背後に隠れます。 この後で、デバッガ画面をよける/縮小しても、対象プログラムは停止していてリドローされないため、 ウィンドウ/ダイアログは真っ白のままで、見たいものが見れない状態になってしまいます。 なので、デバッガが別の PC で動いていれば、 バグが発生した瞬間の画面を見られる! ステップ実行すれば、問題が発生している状況を逐次、見ることができる! というわけです。 ※これは例ですので、これ以外にもリモートデバッグが有用な状況はあるはずです。 なお、Windows のデバイスドライバの開発とか、 Linux のカーネル/デバイスドライバ開発、 組み込みの開発などは 基本的にリモートデバッグです。 > 2台コンピューターを用意して一方のプログラムをデバッグしながら制御ができるということでいいのでしょうか? Yes > また、Virtual PC上のプログラムにアタッチするというようなことも可能なのでしょうか? 詳しくないですが、たぶん No > 普通のデバッグと操作上や機能上の違いはあるのでしょうか? 違いは無いと思います。 ※最初にも書きましたが、自分はやったことはないので、 詳しい方がいれば説明願います。
お礼
回答ありがとうございます。 とても参考になりました。もうすこし自分で調べてみようとおもいます!