开始时应用程序崩溃 - 如何获取崩溃转储文件?
我的winform应用程序一旦启动就会崩溃。此问题只发生在客户端计算机之一中。适用于所有其他客户。我正在考虑使用ADPlus来获得崩溃转储,但问题是为了在崩溃模式下配置ADPlus,调试器需要先连接到正在运行的应用程序。这意味着当我配置ADPlus时,应用程序必须正在运行,但是,正如我所说我的应用程序一旦启动就崩溃了。它没有给我一个运行ADPlus的机会。任何想法,如果在这种情况下可以使用ADPlus?在这种情况下是否还有其他可用的工具生成流程转储?开始时应用程序崩溃 - 如何获取崩溃转储文件?
既然你无法启动该程序,然后安装在时间调试器,你可以尝试以下思路之一:
- 启动程序在那里的崩溃的机器上调试下。 As already mentioned, ProcDump足够用于此目的,或者您可以使用Visual Studio或WinDBG。
- 如果你不能轻易启动该程序在调试器下(例如,如果它实际上是一个Windows服务),use
gflags
to make Windows start the program under the debugger.这将创建一个子项,为您的程序文件名under theImage File Execution Options
registry key. - Set your debugger as the postmortem debugger, so it always launches when any program crashes.
如果当发生崩溃时,调试器将自动入侵并自动创建转储或让您手动创建转储。
如果您不能运行调试器,甚至没有ProcDump,您可以使用Windows内置的崩溃转储工具来自动创建转储:
-
在Windows XP和Windows Server 2003,设置沃森博士通过运行此命令的事后调试:
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应用程序一起工作。