代码之家  ›  专栏  ›  技术社区  ›  luntain

Dr Watson关闭.NET 2.0应用程序时出现崩溃对话框

  •  1
  • luntain  · 技术社区  · 15 年前

    我们偶尔会在进程退出时出现Dr Watson崩溃对话框。进程是.net 2.0。这个 对话不是很有帮助。它说这个过程停止了,在细节上 我可以看到它是关于系统.null参考异常,很棒,但是回溯在哪里呢?

    通常,当.NET进程中出现错误时,会将回溯打印到标准 错误。但在这种情况下,可能不是因为进程退出。有人能给我吗 当此对话框有 出现?

    4 回复  |  直到 13 年前
        1
  •  1
  •   SmacL    15 年前

    我倾向于 disable Dr Watson 在dev机器上,使用visual studio作为当应用程序爆炸时激发的即时it调试器。我发现这种方法在根本原因分析方面更有用,特别是如果您有可用的调试信息。

        2
  •  0
  •   Will Charczuk    15 年前

    使用windbg连接。很可能是在非托管代码中引发了异常。

        3
  •  0
  •   John Sibly    15 年前

    如果崩溃是可复制的,那么在关闭应用程序之前,将调试器设置为中断所有异常(可能是本机异常和CLR异常)可能是值得的。通常,崩溃可能是由于早期的错误,所以这可能会给你一个线索。

    你查过华生医生的档案了吗?这些通常应该至少告诉您是哪个模块导致了问题。如果您正在处理本机代码,则可以将Watson博士提供的小型转储文件加载到Visual Studio中,如果您在该计算机上有调试符号文件和源代码,则可以在崩溃时看到应用程序的状态,攻击线程的调用堆栈和导致崩溃的代码行。我不知道托管代码会发生什么,但可能值得一试。

    此链接应提供有关分析小型转储文件的更多信息 Link to CodeProject

        4
  •  0
  •   row1    13 年前

    我用 DILE 调试生产服务器上的应用程序。

    dotnet il editor(dile)允许反汇编和调试.net 没有源代码或.pdb文件的1.0/1.1/2.0/3.0/3.5应用程序。它甚至可以在.IL上调试.NETFramework本身或程序集。 水平。

    它多次挽救了我的生命,在那里,应用程序崩溃了,没有更多的信息可用。虽然它有很高的学习曲线,但对于那些无法访问visual studio或其他工具的情况,值得了解。

    我相信更新的版本也可以读取转储文件。