2

最近、例外の原因を行ごとに追跡しました

Try
{
    Debug.WriteLine("ViewHelper before comObj.Send() ");
    comObj.Send();   // a very old com component
    Debug.WriteLine("ViewHelper after  comObj.Send() ");
}
Catch (Exception Ex)
{
    Debug.WriteLine("ViewHelper comObj.Send " + Ex.Message);    
}

comObj.Send() は例外をスローしていました 例外
はアプリをクラッシュさせます
しかし、それは上記でキャッチされませんでした キャッチ
を試してください Visual Studio ですべての例外を中断しましたが、その行で中断しませんでし
た グローバル エラー ハンドラ App_DispatcherUnhandledException でキャッチされました
e.Handled = true; を設定した場合 何度もスローされ、それでもアプリがクラッシュする
例外はソースに関する情報を提供しませんソース
を見つける唯一の方法は、デバッグステートメントの前後のものでした
例外は100回の呼び出しに1回スローされるため、追跡するのは困難でした

例外の原因を見つけるためのより高速な方法はありましたか?
最後に呼び出された行に戻る方法はありますか?

後ろのサイトでは、COM コンポーネントに焦点を当てる必要がありました。

4

1 に答える 1

1

ネイティブ コードから例外がスローされていると思われる場合は、有効にしdebugging of unmanaged codeます。MSDNから:

アンマネージ コードのデバッグを有効にするには

  1. ソリューション エクスプローラーでプロジェクトを選択し、[プロジェクト] メニューの [プロパティ] をクリックします。

  2. [デバッグ] タブをクリックします。

  3. [アンマネージ コードのデバッグを有効にする] チェック ボックスをオンにします。

これによりパフォーマンスが低下する可能性があるため、ネイティブ コンポーネントをデバッグしない場合はオフにします。

また、最初にすべての例外で中断しますが、あなたはそれを行ったと述べたので、アンマネージ デバッグが次のステップになります。

于 2013-09-16T17:55:54.060 に答える