【问题标题】:Application crashes on start - how to get a crash dump file?应用程序在启动时崩溃 - 如何获取崩溃转储文件?
【发布时间】:2012-01-14 22:56:06
【问题描述】:

我的 winform 应用程序一启动就崩溃。此问题仅发生在其中一台客户端计算机中。适用于所有其他客户。我正在考虑使用 ADPlus 来获取故障转储,但问题是为了在崩溃模式下配置 ADPlus,需要首先将调试器附加到正在运行的应用程序。这意味着当我配置 ADPlus 时应用程序必须正在运行,但是,正如我所说,我的应用程序在我启动它时就会崩溃。它没有给我运行 ADPlus 的机会。知道 ADPlus 是否可以在这种情况下使用吗?在这种情况下,我可以使用任何其他工具生成进程转储吗?

【问题讨论】:

    标签: windows crash-dumps adplus


    【解决方案1】:

    由于无法启动程序然后及时附加调试器,可以尝试以下思路之一:

    如果发生崩溃,调试器会自动中断并自动创建转储或让您手动创建转储。

    如果您无法运行调试器,甚至 ProcDump,您可以使用 Windows 的内置故障转储工具自动创建转储:

    • 在 Windows XP 和 Windows Server 2003 上,通过运行以下命令将 Dr. Watson 设置为事后调试器:

      drwtsn32 -i
      

      以下是有关此命令的作用以及如何使用 Dr. Watson 的信息:Capturing Application Crash Dumps

    • 在 Windows Vista SP1、Windows Server 2008 及更高版本上,设置 Windows 错误报告以通过创建此注册表项在本地保存转储:

      HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
      

      您无需在此键下创建或设置任何值或子键。如果您想更改设置,这里有更多信息:Collecting User-Mode Dumps

      请注意,“执行自己的自定义崩溃报告的应用程序,包括 .NET 应用程序,不受”WER 支持。这对您来说是个问题,因为您的应用使用 WinForms - 尽管有迹象表明该功能确实适用于 Windows 7 上的 .NET 4 应用。

    【讨论】:

      【解决方案2】:

      您可以使用来自 Sysinternals 的 ProcDump 来捕获转储。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-02
        相关资源
        最近更新 更多