我有一个C#WPF UI应用程序,当我关闭它时,我总是得到一个Windows应用程序崩溃对话框(“UIDemo遇到了问题,需要关闭。”)。
错误报告表明它是一个System.ObjectDisposedException,它指示在已处置对象上调用方法的某个位置。那没关系,我明白那部分。
我很想解决它。 我无法在混蛋中获得堆栈跟踪。
该例外正在逃避以下所有因素:
所有我必须继续的是Windows发送给MS的错误报告的神秘内容。这些十六进制的内存转储并不是那么有用。
有谁知道我怎么能得到这种痕迹?
答案 0 :(得分:5)
控制台窗口将显示带有完整堆栈跟踪的任何异常。要向WPF应用程序添加控制台窗口:
Application
。Output type
下选择Console Application
。答案 1 :(得分:2)
另一个选择是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
答案 2 :(得分:1)
尝试在主方法中放置try / catch,而不是在退出处理程序周围。在WPF中,主要方法并不总是很容易找到 - 请看这里如何找到它:http://joyfulwpf.blogspot.com/2009/05/where-is-main-method-in-my-wpf.html