1

C#WPF UIアプリがあり、それを閉じると、常にWindowsアプリケーションのクラッシュダイアログが表示されます(「UIDemoで問題が発生したため、閉じる必要があります。」)。

エラーレポートは、それがSystem.ObjectDisposedExceptionであることを示しています。これは、破棄されたオブジェクトでメソッドが呼び出されていることを示しています。それは結構です、私はその部分を理解しています。

そして、私はそれを修正したいと思います。 ろくでなしでスタックトレースを取得できません。

その例外は、次のすべてを回避しています。

  • 私のDispatcherUnhandledExceptionハンドラー
  • Exitイベントハンドラーのコンテンツ全体を囲むtry/catch
  • そのWindowsアプリケーションで[デバッグ]をクリックすると、クラッシュダイアログが閉じて何もしません
  • VisualStudioのデバッグモードでアプリを実行すると機能するように見えますが、奇妙なことに、この方法ではクラッシュしないように見えるため、トレースはありません

私が続けなければならないのは、WindowsがMSに送信するエラーレポートの不可解な内容だけです。これらの16進数のメモリのダンプは、実際にはそれほど有用ではありません。

誰かが私がそのくそったれの痕跡を得る方法を知っていますか?

4

3 に答える 3

5

コンソールウィンドウには、完全なスタックトレースでスローされた例外が表示されます。WPFアプリケーションにコンソールウィンドウを追加するには:

  1. WPFアプリケーションのプロジェクトプロパティに移動します。
  2. 最初の(サイド)タブを選択しますApplication
  3. Output type[選択]の下Console Application
  4. アプリをビルドして実行します。追加のコンソールウィンドウで起動するはずです。クラッシュすると、例外とスタックトレースが表示されます。
于 2011-10-18T21:06:51.510 に答える
2

もう1つのオプションは、DebugDiagを使用してその特定の例外をキャッチし、クラッシュダンプを生成することです。クラッシュダンプは、psscor2またはSOSを介してWinDbgで分析できます。これにより、スタックトレースを評価できます。

DebugDiag: http ://www.microsoft.com/download/en/details.aspx?displaylang=en&id=24370

WinDbgを使用したCLRのデバッグ:http: //www.codeproject.com/KB/debug/windbg_part1.aspx

于 2011-10-18T20:03:10.480 に答える
1

出口ハンドラーの周りではなく、メインメソッドの内部にtry/catchを配置してみてください。WPFでは、メインのメソッドを見つけるのは必ずしも簡単ではありません。見つける方法については、http://joyfulwpf.blogspot.com/2009/05/where-is-main-method-in-my-wpfを参照してください。 html

于 2011-10-18T19:47:05.033 に答える