我有一个C#应用程序,有时会因为未知原因而崩溃。因此,我想找到崩溃转储文件,但它不存在。我还写了一个小应用程序,它引发DivideByZero
异常(未处理)。这样做的后果:在一个系统上,程序关闭而没有任何消息,在另一个系统(VM)上,我得到一个简单的崩溃报告,希望将数据发送给Microsoft。
我配置了drwtsn.exe
和注册表设置。我也尝试使用WinDbg
但没有成功。
有人知道如何强制系统写入转储文件吗?
祝你好运, EL
答案 0 :(得分:3)
您需要为AppDomain.UnhandledException事件编写事件处理程序。记录e.ExceptionObject.ToString()值几乎总是足够好,堆栈跟踪告诉你代码是如何陷入麻烦的。
P /从dbghelp.dll调用MiniDumpWriteDump()也是可能的,你会得到一个.dmp文件,你可以用它来分析WinDbug的异常。 Dbghelp.dll在Vista和Win7上可用,您可以从早期版本的Debugging Tools for Windows下载获得它。但是,您无法从该minidump获得良好的托管堆栈跟踪,直到VS2010发布。
答案 1 :(得分:1)
ADPlus是最简单的方法。广泛的文档从这里开始:http://support.microsoft.com/kb/286350