2017-02-06 5 views
0

私はC++、AとBの2つのプログラムを書いています。Aプログラムでは、引数付きのB(コンソールベースプログラム)を呼び出します。デバッグプログラムが別のプログラムから呼び出された方法

私が望むのは、デバッグモード(プログラムAを実行していることがわかっている)になりたいということです。 Visual Studio 2010でどうすれば設定できますか?

が、これはあなたの第二のプロセスにデバッガをアタッチすることができます主なコール::DebugBreak()の開始時に、あなたにプログラムBでは

+0

[Visual StudioはWinDBGのような子プロセスをデバッグできますか?](http://stackoverflow.com/questions/771039/can-visual-studio-be-made-to-debug-child-processes) -like-windbg) – IInspectable

答えて

1

私はちょうどSleep(10000)を追加しました。 (または同様に)プログラムBの開始時にデバッガを手動で接続します。また、環境変数/コマンドライン引数で条件付きにすることもできます。...

私はそれがハックであることを知っています。よりよい解決法を好むだろう。

+0

それは最高のトリックになるかもしれません:) –

+0

それはハックであり、プログラムBのコードを変更することができる*ことが必要です。提案された複製は2つのそのような解決策を提供する。 – IInspectable

+0

@IInspectable状況によっては、より良い解決策があるかもしれませんが、クロムマクロリンクは無効で、Image Execution Optionsはレジストリを前後に変更することを意味します。子プロセスツールにはVS 2013 Update 2が必要です。またはそれ以降 - OP使用VS 2010. –

-1

ありがとうございます。参照してください:https://msdn.microsoft.com/en-us/library/windows/desktop/ms679297(v=vs.85).aspx

+0

いいえ、これは動作しません。 'DebugBreak()'は、デバッガがすでに接続されているときにデバッガにブレークします。これは[documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ms679297.aspx)からまっすぐです:* "プロセスがデバッグされていない場合、関数は検索ロジックを使用します"* – IInspectable

+0

これは呼び出し時に私のprogをクラッシュさせてしまいました!!これは、例外ハンドラの処理が終了したためです。 –

+0

「例外が発生しました。処理を中止、再試行、デバッグしますか?」という言い方が良いダイアログボックスが表示されます。 –

関連する問題