自动转储文件生成,是否有注册表设置?

时间:2014-08-13 09:49:03

标签: windows crash-dumps

今天生成转储文件我使用SysInternals工具ProcDump,在cmd窗口中运行这样的命令:

:loop

net stop "MyService"
net start "MyService"

echo Monitoring Access violations
procdump.exe -e -g -ma MyApplication.exe MyDumpFile.dmp > log.txt

goto loop

但是,当有一个应用程序崩溃时,还有另一种方法可以直接告诉Windows创建转储吗?

例如,我找到了此注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl 这使得Windows可以生成转储,但只有在系统崩溃时才会生成。

当一个应用程序或服务崩溃时,是否存在用于生成转储的等效键或Windows设置?

它将由QA服务使用,我希望它可以减少侵入性。运行procdump看起来就像一个添加的工具,一个插入的工具。

1 个答案:

答案 0 :(得分:2)

确实,您需要从MSDN创建此密钥:

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

然后填充所需的设置:

  • DumpFolder - 相当于用户文件夹的minidump文件夹,即存储转储的位置。由于这是每个用户,用户需要对该位置的写访问权。
  • DumpType - 是执行完整内存转储还是仅执行小型转储。

在此文件夹中,这些设置适用于崩溃的任何应用程序。如果要匹配特定进程,请创建一个包含进程名称的子文件夹,例如myapphasabug.exe并在那里应用自定义设置,覆盖默认设置。

也许这比您需要的更多,但codeproject minidumper example是一个非常有用的起点,可以为应用程序添加自助转储和支持代码,如果您希望自己的应用程序自动化"有一个转储,请发送给支持"过程

另外,考虑打开application verifier进行更严格的测试 - 就像驱动程序验证程序一样,它可以在您发货之前发现问题并且非常方便。