即使registry设置正确,Windows也不会生成完整的崩溃转储

我的客户正在用我写的VB6程序遇到软件崩溃。

我已经build立了registry来产生完整的崩溃转储,而且我看到它可以正常的与其系统上崩溃的其他程序正常工作,但由于某种原因,对于我的程序,stil会在一个完全不同的目录中创build简单的崩溃转储。

我的程序是在64位计算机上运行的32位程序。 我已经设置了如图所示的registry,用于SOFTWARE \ Microsoft和SOFTWARE \ Wow6432Node \ Microsoft。

依然不起作用。

有谁知道我可以肯定,每当程序崩溃,完整的崩溃转储产生?

注册表变化我做了

权限

查看文件夹C:\ProgramData\Microsoft\Windows\WER的权限

  • 阅读并执行
  • 列出文件夹内容

创建子文件夹LocalDumps将继承权限。

因此,您应该修改该文件夹的权限或使用具有写入权限的其他文件夹。

32与64位

Windows错误报告由Windows执行,只使用注册表项与OS的位数。 你说你建立了两个。 如果那是真的,那很好。 如果您只设置了32位注册表项,则不起作用。

的AeDebug

如果您有AeDebug HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug ,那些在WER之前执行。

通常这应该导致启动一个调试器,但谁知道…它可能什么也不做,只是退出。

尝试之前使用它

要测试你的设置是否工作,你可以用一个小的C ++程序来测试。

 #include "stdafx.h" #include <exception> int _tmain(int /*argc*/, _TCHAR* /*argv*/[]) { throw std::exception(); }