2011-02-06 15 views
0

私はVisual StudioでC++ライブラリを開発しており、コードにいくつかの条件がチェックされている点があります。このような条件が満たされない場合、例外がスローされます。に効果的にデバッガを起動(または既存のデバッガを指して)例外がスローされる時点、前に、私のデバッグを支援するために、私は(ASM int型3のような)C++:__debugbreak()、またはより良い代替の後に続行

__debugbreak(); 

文を入れています私は変数を見て、スタックなどを呼び出すことができます...

しかし、時々私は(__debugbreak();)が存在しないように実行を継続したいと思うかもしれません。例外をスローします(エラーをログに記録し、他のものを実行します)。

問題は(デバッガの外で実行している)私はちょうどプログラムがクラッシュしたことを示すウィンドウが表示されていて、それを閉じるかデバッグするかを選択します。私が達成したいのは、デバッグ(つまり、デバッガのアタッチ、ポイントツーライン、ブレーク実行)と実行の継続の選択です。

これを行う方法?

答えて

0

この特定のライブラリ関数を使用するよりも、デバッガでプログラムを実行し、テストの実行を一時停止する場所にブレークポイントを置くほうがはるかに優れているようです。デバッガにトラップするための割り込みでのハードコーディングは、デバッグフックが残っているクライアントに誤ってコードをリリースする可能性があることを意味し、実行を停止してデバッグを開始する方法を細かく制御できます。

関連する問題