1

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

4

2 回答 2

2

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

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

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

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

    drwtsn32 -i
    

    以下是有关此命令的作用以及如何使用 Dr. Watson 的信息:捕获应用程序故障转储

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

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

    您无需在此键下创建或设置任何值或子键。如果您想更改设置,这里有更多信息:收集用户模式转储

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

于 2012-01-18T08:37:09.947 回答
0

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

于 2012-01-18T04:48:28.123 回答