我们偶尔会在流程退出时获得dr watson崩溃对话框。该过程是.NET 2.0。该 对话框不是很有帮助。它说这个过程停止了工作和细节 我可以看到它是关于System.NullReferenceException,很好,但回溯在哪里?
通常,当.net进程出现错误时,会向标准打印回溯 错误。但不是在这种情况下,可能是因为该过程退出。任何人都可以给我 有关如何在此对话框中获取有关崩溃原因的更多信息的指示 出现?
答案 0 :(得分:1)
我倾向于在开发机器上使用disable Dr Watson并使用Visual Studio作为应用程序炸弹时被激活的时间调试器。我发现这种方式在根本原因分析方面更有用,特别是如果你有可用的调试信息。
答案 1 :(得分:0)
使用WinDBG附加。很可能在未托管代码中引发异常。
答案 2 :(得分:0)
如果崩溃是可重现的,那么在关闭应用程序之前,可能需要设置调试器以中断所有异常(可能是本机和CLR)。通常崩溃可能是由于之前的错误造成的,所以这可能会给你一个线索。
您是否查看了Dr. Watson转储文件?这些应该通常告诉您至少哪个模块导致了问题。如果您正在处理本机代码,您将能够将Dr Watson提供的minidump文件加载到Visual Studio中,并且在该计算机上提供调试符号文件和源代码,您将能够看到应用程序的状态。崩溃的时间,违规线程的调用堆栈以及导致崩溃的代码行。我不知道托管代码会发生什么,但可能值得尝试。
此链接应该为您提供有关分析minidump文件的更多信息 Link to CodeProject
答案 3 :(得分:0)
我使用DILE来调试生产服务器上的应用程序。
Dotnet IL Editor(DILE)允许反汇编和调试.NET 1.0 / 1.1 / 2.0 / 3.0 / 3.5没有源代码或.pdb文件的应用程序。它甚至可以调试自身或IL上的.NET Framework程序集 水平。
它已经多次挽救了我的生命,应用程序崩溃了,没有更多信息可用。它虽然具有很高的学习曲线,但值得了解您无法访问Visual Studio或其他工具的情况。
我相信较新的版本也可以读取转储文件。