【问题标题】:No Crashdumps/Minidumps are saved不保存崩溃转储/小型转储
【发布时间】:2019-06-28 01:21:04
【问题描述】:

我添加了一个注册表项

SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\MyApp.exe

价值观

DumpCount 0x2
DumpType 0x1

让 Windows 创建一个 Minidump 以防 MyApp.exe 崩溃。未设置路径值是为了让 Windows 使用默认存储位置。不幸的是,在我的应用程序崩溃后,没有转储写入 C:/Windows/Minidump(我向应用程序添加了对 0x00000000 的内存访问,以强制崩溃并测试 Minidump 的写入)。

知道这里可能缺少什么吗?

谢谢!

【问题讨论】:

  • 这是什么程序?也许它有一个吃掉异常的全局默认异常处理程序?
  • @500-InternalServerError 不,没有默认的异常处理程序或类似的东西,对于这个测试,我让它在没有任何进一步操作的情况下死掉,以获得崩溃转储
  • 它必须是您在没有 UAC 提升的情况下具有写入权限的位置。所以不是 c:\windows。看这里:stackoverflow.com/a/8765468/17034
  • 最好的办法是使用顶级异常处理程序自己创建转储。
  • @HansPassant 当我将 DumpFolder 设置为例如D:\(每个人都可以写入的驱动器)没有任何反应。是否有一个注册表选项可以全局禁用此功能并覆盖应用程序本地设置?

标签: windows winapi crash-dumps minidump


【解决方案1】:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting 键下创建/写入一个名为“已禁用”的DWORD(32-bit) 值,并将其设置为 0 以打开 WER,或设置为 1 以关闭。

如果未设置DumpFolder 的值,则默认值为%LOCALAPPDATA%\CrashDumps(根据Collecting User-Mode Dumps)。喜欢:

而“Report.wer”文件位于C:\ProgramData\Microsoft\Windows\WER\ReportArchive

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多