2011-08-02 9 views
1

に私は2つのC++プログラムは、私たちは「TEST1」と「TEST2」バイナリがVS2010を使用してWindowsで構築を言わせたのです。私の論理は、 "test1"が "test2"を開始するようなものです。今私はtest2のプログラムでブレークポイントを保持し、デバッグバイナリがビルドされているので、それがtest1によって開始されたときに "test2"を介してステップを介してデバッグしたい。 デバッグC++プログラムは、VS2010

は今、私は「TEST1」のリリースバージョンを開始し、期待TEST2が開始されるように、我々は唯一のデバッグバージョンが開始されていることを知っている(私はTEST2ビルドのバージョンをリリースしていないことに注意してください)。しかし、test2が起動すると、私はブレークポイントで停止することを期待していますが、停止していません。 VS IDEからtest2のデバッグバージョンを起動すると、ブレークポイントで停止しています。それはTEST1によって開始されたときに我々はTEST2をデバッグするにはどうすればよい

?どうやってウィンドウ内でこれを実現できますか?

ありがとうございます!

答えて

3

デバッガの起動時に「実行プロセスにアタッチ」オプションを使用できます。通常、TEST1を実行し、それがTEST2のプロセスを生成するとき、あなたはそれにデバッガをアタッチすることができます

From the debug menu

Process selection dialog

+2

私はそれはあなたにそれ –

+0

はい、非常に良いポイントに接続するための時間を与えますので、あなたは数秒間()TEST2をスリープする必要がある場合がありますことを追加することができます! – mwigdahl

+0

スリープの代わりに、メッセージボックスを表示するだけです。それは、あなたが添付する必要がある時間をあなたに与えるべきであり、Sleepメソッドが戻る前にあなたが時計を付けて競争することはありません。 –

1

あなたは(TEST1ない)TEST2プロジェクトのデバッグセッションを開始する必要があると指定しますtest2のプロジェクトプロパティで実行する実行可能ファイルこれは、構成プロパティー - >デバッグ - >コマンドの下にあります。この値をtest1.exeに設定します。

+0

個人的に私はデバッグコマンドとして$(TargetPath)を好む。バイナリの名前を変更してもそれはそのまま動作します。 –

+0

@C Johnson:しかし$(TargetPath)は間違った実行可能ファイルtest1を指します。test2.exeプロジェクトのデバッガを起動するときにexeを実行する必要があります。そのため、F5キーを押したときにtest2.exeプロジェクトがアクティブなプロジェクトになります。 – Skizz

1

次の2つの可能なアプローチがあります。

は、Visual StudioでTEST2プロジェクトをアクティブにします

  1. をプロセスにアタッチ。
  2. test1を開始し、次にtest2プロセスを開始します。
  3. デバッグ| Attach to Processを選択し、test2プロセスを選択します。

あなたは、プロセスの起動をデバッグする必要がない場合、これは大丈夫です。

  1. プロジェクトの設定は、Visual StudioでTEST2プロジェクトをアクティブにします。

  2. プロジェクトを開く|設定|構成プロパティ|デバッグ
  3. コマンドをtest1.exeへのフルパスに設定します。

一般的にこの代替ははるかに生産され、あなたはデバッグ起動することができます。

関連する問題