即使注册表设置正确,Windows也不产生完整的故障转储

用户名

我的客户端使用我编写的VB6程序遇到软件崩溃。

我已经设置了注册表以产生完整的故障转储,并且看到它可以与在其系统上崩溃的其他程序正常工作,但是由于某种原因,由于我的程序,它仍然在完全不同的目录中创建简单的故障转储。

我的程序在x64计算机上运行的是32位。如图所示,我已经为SOFTWARE \ Microsoft和SOFTWARE \ Wow6432Node \ Microsoft设置了注册表。

仍然不起作用。

有谁知道我如何确定每次程序崩溃都会产生完整的崩溃转储?

我曾对注册表进行过更改

托马斯·韦勒

文件夹的写入权限

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

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

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

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

注册表项的权限

如果权限不允许,Windows可能无法读取注册表设置。例如,以下(确实很愚蠢的)权限也会阻止LocalDump:

LocalDumps权限

32与64位

Windows错误报告由Windows执行,仅将注册表项与操作系统结合使用。您说您同时设置了两者。如果是这样,那就很好。如果您仅设置32位注册表项,它将无法正常工作。

调试

If you have a setting for AeDebug HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug, those are executed before WER.

Note that this entry may exist in 32 bit (WOW6432Node) and 64 bit.

Usually that should result in starting a debugger, but who knows ... it might do nothing and just exit.

LocalDumps is disabled

Make sure that there is no DWORD Disabled with a value of 1 in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

Use of REG_SZ instead of REG_EXPAND_SZ

I have seen people using a REG_SZ for DumpFolder in combination with %APPDATA%. Only REG_EXPAND_SZ will expand environment variables.

Someone cancels the crash dump generation

If the WER dialog is enabled, someone may press the cancel button.

Set DWORD DontShowUI to 1 to disable the dialog.

User settings instead of machine settings

There's the machine wide setting

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting

but also user defined settings in

HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting

机器值可能会被用户设置覆盖。

尝试使用之前

要测试您的设置是否有效,可以使用小型C ++程序进行测试。

#include "stdafx.h"
#include <exception>

int _tmain(int /*argc*/, _TCHAR* /*argv*/[])
{
    throw std::exception();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何还原和转储Windows注册表而不覆盖当前注册表

来自分类Dev

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

来自分类Dev

如何正确生成 Windows 完整内存转储?

来自分类Dev

Windows 7注册表设置文档

来自分类Dev

设置注册表值

来自分类Dev

Windows 注册表或 IE 中的可信脚本设置

来自分类Dev

Windows注册表问题

来自分类Dev

从Windows Phone 8设备检索故障转储

来自分类Dev

如何在Windows 7下删除故障转储文件

来自分类Dev

如何从注册表更改高级设置

来自分类Dev

如何在Windows上设置Firefox以忽略注册表设置?

来自分类Dev

故障转储分析:CxxUnhandledExceptionFilter

来自分类Dev

分段故障(核心转储)

来自分类Dev

分析故障转储文件

来自分类Dev

分段故障(核心转储)

来自分类Dev

故障转储分析:CxxUnhandledExceptionFilter

来自分类Dev

从Perl中的Windows注册表读取

来自分类Dev

Windows注册表运行键

来自分类Dev

使用Perl解析Windows注册表

来自分类Dev

Windows注册表HKCR合并规则

来自分类Dev

访问Windows注册表Python

来自分类Dev

Linux等效于Windows注册表

来自分类Dev

如何永久更改Windows注册表?

来自分类Dev

Windows注册表中的神秘@字符

来自分类Dev

Windows 10刷新并影响注册表

来自分类Dev

Windows注册表| 如何打开.lnk

来自分类Dev

从Ubuntu访问Windows注册表

来自分类Dev

如何提交包含故障转储和重现步骤的完整错误报告?

来自分类Dev

如何提交包含故障转储和重现步骤的完整错误报告?