2

サポート用のアプリケーションを渡されたので、その方法を考えています。私はソースを持っており、いくつかの変更を加えることができますが、アプリケーションのアーキテクチャを完全に変更したくないことは明らかです。

アプリは、9 つ​​の異なるプロジェクトで構成される VS2010 ソリューションにあります。主なものは Windows フォーム アプリケーションですが、別のスレッドで他のアプリケーションをスピンオフします。

ここが難点です。異なるプロジェクトは同じソリューションの一部ですが、DLL ではなく個別の実行可能ファイルです。メイン プログラムが他のプロジェクトの 1 つを開始するときは、新しいプロセスを作成し、実行可能ファイルのファイル名、起動引数、およびその他のさまざまなパラメーターを process.StartInfo オブジェクトに設定してから、process.Start() を呼び出します。

ブレークポイントを設定し、下位の実行可能ファイルをデバッグするにはどうすればよいですか? ロードされるまでアタッチできませんが、 process.Start() が呼び出されるまでロードされず、それまでには手遅れです。実際に実行を開始する前に、メインプログラムに挿入して実行可能ファイルをロードする (ブレークポイントを設定できるようにする) メソッド呼び出しはありますか?

ありがとう。

4

2 に答える 2

0

簡単な解決策の 1 つは、DebugActiveProcess関数の呼び出しを、アプリケーションに参加するすべてのプロセスの「メイン」関数に追加することです。

于 2011-03-29T15:44:35.640 に答える
0

他の実行可能ファイルを再コンパイルできますか? もしそうなら、DebugBreak を適切な場所に置いてみましたか? (または _asm int 3)。

定義上、開始前にデバッグしているアドレス空間とは異なるアドレス空間でプロセスが実行されるため、プロセスをロードすることはできません (便利なことです)。

于 2011-03-29T15:03:12.083 に答える