Windows 8在哪里存储用户模式崩溃小型转储?


18

Windows 8在哪里存储用户模式崩溃的小型转储?


已记录Windows Vista和Windows 7 (默认情况下)将故障转储存储在

%LOCALAPPDATA%\CrashDumps

有观察证据支持的事实:

在此处输入图片说明

但是,当应用程序在Windows 8上崩溃时:

在此处输入图片说明

里面没有崩溃转储%LOCALAPPDATA%\CrashDumps;甚至没有CrashDumps文件夹:

在此处输入图片说明

这导致了一个问题:

Windows 8在哪里存储用户模式崩溃的小型转储?

注意:您可以忽略第一行之后的所有内容;它只是浪费的填充物。


在此处输入图片说明


我做了dir *.dmp /sdir *.mdmp /s的Windows文件夹,我的用户配置文件夹的根目录。
伊恩·博伊德

确保您没有打开应用程序特定的故障转储?我在系统上找到它们没有问题。当然,我还验证了该功能已在我的系统上打开。
Ramhound

您在系统上的哪里找到它们?(我已经检查了两个位置)您打开了WER故障转储的哪些设置?(我已经检查了3种设置)
Ian Boyd

您检查事件日志了吗?通常,您会在此处找到转储的路径。IIRC Windows将它们(.dmp + .xml)打包在一个ZIP文件中,因此也可以使用其他名称。试着Win+ReventvwrENTER检查事件日志。
0xC0000022L13

1
@IanBoyd:取决于系统设置,但我对W8不太熟悉。我建议你尝试找到该文件在下一次同时在WER对话框仍处于打开状态。
0xC0000022L

Answers:


6

我在Windows 8.1 Professional中观察到以下内容:

Windows错误报告写入: %ProgramData%\Microsoft\Windows\WER\

但是,默认情况下,它不再将转储永久存储在本地计算机上。您需要显式启用转储存储。

使用组策略编辑器(gpedit.msc): Computer Configuration -> Administrative Templates -> Windows Components -> Windows Error Reporting -> Advanced Error Reporting Settings

  1. 启用策略Configure Report Archive

    • 存档行为=全部存储
    • 最大数量= 100
  2. 您可能还希望启用该策略,Do not throttle additional data以发送和存储具有相似签名的连续崩溃的转储。

转储Report.cab位于崩溃特定子文件夹的文件内。


4

看起来很简单:

在我的Windows 8.1机器上,没有%LOCALAPPDATA%\ CrashDumps,也没有生成任何转储。我在注册表中创建了以下值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
DumpFolder=REG_EXPAND_SZ:"C:\Dumps"

(上述语法对于.reg文件而言并不完全,但是必须清楚它是什么)

下次我的程序崩溃时,转储在中生成C:\Dumps

我希望这有帮助。


2

您可以在计算机上搜索.dmp文件。但是,如果您找不到任何内容,请继续阅读。

对于Store应用程序,Windows 8似乎在Microsoft服务器上收集了应用程序故障转储,它们的生命周期还不得而知(我怀疑:30天,我从这里选择了这个数字)。

有关详细信息,请参阅文章使用质量报告改善应用程序

简而言之:您可以通过应用程序的“应用程序摘要页面”访问质量报告。该页面提供了包含进程转储(!)的.cab文件的下载链接。

我没有Windows 8,而我的上述回答似乎对Microsoft来说纯粹是疯狂,但这是我读到文档中所得出的难以置信的事实。我只是希望我错了。



这种情况甚至比我想像的还要多。是否可以选择返回Windows 7?否则,您别无选择,只能购买Verisign许可证或放弃应用程序故障转储。
harrymc

对于处理敏感信息(例如密码和私钥)的应用程序,这是一个重大安全漏洞。绝对没有理由将包含敏感信息的转储发送给Microsoft等公司。敏感信息绝不能像应用程序或本地计算机那样离开安全边界。执法人员和罪犯感谢Microsoft使收集秘密信息变得容易。
jww

0

您可以覆盖文件的存储位置。运行regedit.exe并转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumpsREG_EXPAND_SZ使用您要使用的文件夹的名称(例如C:\ dumps)创建一个。


这是不必要的,因为DumpFolder的默认值为%LOCALAPPDATA%\CrashDumps。但这显然对Windows 8上的发布者没有影响
。– harrymc

根据我的经验,覆盖文件夹可确保写入转储,而默认设置则不是这样。
magicandre1981

Windows 8一切皆有可能...希望海报可以在此提供一些反馈。
harrymc

@harrymc注册表项存在;原始问题中的屏幕截图显示了小型转储。
伊恩·博伊德

1
再次,将值更改为C:\ dumps。自从Vista Sp1中添加该功能以来,这对我有用。
magicandre1981
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.