如何获得 Windows 错误报告 (WER) 以保存内存转储以进行挂起?
Posted
技术标签:
【中文标题】如何获得 Windows 错误报告 (WER) 以保存内存转储以进行挂起?【英文标题】:How do you get Windows Error Reporting (WER) to save memory dumps for hangs? 【发布时间】:2019-03-03 13:16:09 【问题描述】:WER 在应用程序挂起后创建内存转储。当 Windows 显示对话框 ApplicationName 没有响应 时,如果用户单击 关闭程序,我可以看到在 @ 中创建了 .hdmp 文件987654322@。将它们发送给 Microsoft 后,将创建此文件夹:C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppHang_WindowsFormsApp5_823dc9208bf3a14f898f39469b7b6a0c6f17c7_3db8b24d_07a39f1b
。但是,此文件夹只有一个带有摘要的 .wer 文件。
能否配置 Windows 错误报告以保持内存转储捕获本地磁盘上无响应的应用程序?
我已经尝试过Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
,但它只是为崩溃创建转储,而不是挂起。
【问题讨论】:
使用 procdump -h 为挂起生成转储:collaborationhelp.cisco.com/article/en-us/WBX85638 【参考方案1】:在Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\
中创建一个名为CorporateWerServer
的REG_SZ 值,并将其值设置为空字符串。由于 Windows 无法联系企业 WER 服务器,因此挂起转储将保留在 C:\ProgramData\Microsoft\Windows\WER\ReportQueue\
【讨论】:
这是唯一对我有用的东西。【参考方案2】:您可以使用 WER 的 ConfigureArchive 设置并将其设置为“2”[所有数据]。这将捕获并存档所有数据(而不仅仅是 Report.wer)。
请参阅 ConfigureArchive https://docs.microsoft.com/en-us/windows/desktop/wer/wer-settings。
在提升的提示符下,运行:
Reg add "hklm\software\microsoft\windows\windows error reporting" /f /t REG_DWORD /v ConfigureArchive /d 2
设置企业 WER 服务器会导致所有崩溃/挂起报告都留在您的设备上,并且它们永远不会到达 Microsoft。这可能不是理想的解决方案。
【讨论】:
嗨,我不记得我们是否测试过ConfigureArchive
,但我会验证它是否有效并更改接受的答案。将 CorporateWerServer
更改为空字符串绝对是一种 hack - 2
中的 ConfigureArchive
听起来更接近我们想要的。
这对我不起作用,即使我也在 HKCU 中设置了值。以上是关于如何获得 Windows 错误报告 (WER) 以保存内存转储以进行挂起?的主要内容,如果未能解决你的问题,请参考以下文章
从 Outlook COM 加载项手动触发 Windows 错误报告