您如何获得 Windows 错误报告 (WER) 以保存挂起的内存转储?

How do you get Windows Error Reporting (WER) to save memory dumps for hangs?

WER 正在应用程序挂起后创建内存转储。当Windows显示对话框ApplicationName没有响应时,如果用户点击关闭程序,我可以看到在 C:\ProgramData\Microsoft\Windows\WER\Temp 中创建了 .hdmp 文件。将它们发送给 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,但它只是为崩溃创建转储,而不是挂起。

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\ 中创建一个名为 CorporateWerServer 的 REG_SZ 值,并将其值设置为空字符串。由于 Windows 无法联系企业 WER 服务器,挂起转储将保留在 C:\ProgramData\Microsoft\Windows\WER\ReportQueue\

您可以使用 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 服务器会导致所有 crash/hang 报告都位于您的设备上,并且它们永远不会到达 Microsoft。这可能不是理想的解决方案。