7

我只想恢复我自己的 32 位应用程序的故障转储。

我尝试了以下方法:

  • 我按照 MSDN“收集用户模式转储”中的步骤操作:http: //msdn.microsoft.com/en-us/library/windows/desktop/bb787181%28v=vs.85%29.aspx

  • 在互联网的某个地方,我看到一个关于32 位应用程序的 WER 注册表项的提及 不必添加到HKLM\Software\WOW6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps\

  • 此外,该..\Windows NT\AeDebug\Auto (REG_SZ)值必须为“0”

此外,我在显示消息“检测到可能的堆损坏(代码 3221225477)”下 的“系统事件查看器”中有 WER 错误条目"Windows Logs\Applications&Services\Microsoft\Windows\WER-Diagnostics\Operational"

我不知道这条消息是否与我创建 NPE 的测试应用程序有关,或者这是否是 WER 本身有问题?

我只是无法让它工作:(谁能给我一些线索?


更新: 对于另一台新的 2008R2 x64 机器,我刚刚做了

HKLM\Software\... Reporting\LocalDumps\DumpFolder = "c:\crashdumps"
HKLM\Software\... Reporting\LocalDumps\DumpType = 2   (REG_DWORD)
HKLM\Software\... Reporting\LocalDumps\DumpCount = 20 decimal (REG_DWORD)

并且运行 nulpointer-terster 按预期工作。

所以我认为这些其他机器中必须有一个设置禁止使用 LocalDumps,尽管 LocalDumps 注册表项在那里..

4

2 回答 2

3
  1. 创建密钥:HKLM\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps
  2. 创建 REG_DWORD 值:HKLM\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps 为 2(=完整转储)。
  3. 创建 REG_EXPAND_SZ 值: HKLM\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps 作为 C:\Dumps 或您喜欢的位置。确保此文件夹确实存在。
于 2012-06-13T12:25:47.507 回答
1

我想您已经检查了大多数常见问题。还有3个:

要写入的文件夹的权限

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

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

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

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

注册表项的权限

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

LocalDumps 权限

LocalDumps 已禁用

确保没有Disabled值为1in的 DWORDHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

于 2018-01-18T20:14:41.280 回答