应用程序在启动时崩溃 - 如何获取崩溃转储文件?

时间:2012-01-14 22:56:07

标签: windows crash-dumps adplus

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

2 个答案:

答案 0 :(得分:2)

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

如果发生崩溃,调试器将自动进入并自动创建转储或让您手动创建转储。

如果你不能运行调试器,甚至不能运行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

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

答案 1 :(得分:0)

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