收集用户模式转储

Windows Server 2008包含 Service Pack 1 (SP1) 的 Windows Vista 开始,可以配置 Windows 错误报告 (WER),以便在用户模式应用程序崩溃后在本地收集并存储完整的用户模式转储。 此功能不支持自行执行自定义崩溃报告的应用程序。

默认情况下不启用此功能。 启用该功能需要管理员权限。 要启用和配置该功能,请在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps 项下使用以下注册表值。

描述 类型 默认值
DumpFolder 要存储转储文件的路径。 如果不使用默认路径,请确保该文件夹包含允许崩溃进程将数据写入文件夹的 ACL。 对于服务崩溃,转储将写入特定于服务的配置文件文件夹,具体取决于所使用的服务帐户。 例如,系统服务的配置文件文件夹为 %WINDIR%\System32\Config\SystemProfile。 对于网络和本地服务,文件夹为 %WINDIR%\ServiceProfiles。
REG_EXPAND_SZ %LOCALAPPDATA%\CrashDumps
DumpCount 文件夹中的最大转储文件数。 超过最大值后,文件夹中最早的转储文件将替换为新的转储文件。 REG_DWORD 10
DumpType 指定以下转储类型之一:
  • 0:自定义转储
  • 1:小型转储
  • 2:完全转储
REG_DWORD 1
CustomDumpFlags 要使用的自定义转储选项。 仅当 DumpType设置为 0 时,才使用此值。
这些选项是 MINIDUMP_TYPE 枚举值的按位组合。
REG_DWORD
0x00000121 (MiniDumpWithDataSegs MiniDumpWithUnloadedModules MiniDumpWithProcessThreadData == 0x00000001 0x00000020 0x00000100)

注意

如果为应用程序崩溃设置了自动调试,则不会收集故障转储。

这些注册表值表示全局设置。 还可以提供按应用程序设置,以替代全局设置。 要创建按应用程序设置,请在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps 下为应用程序创建新密钥

(例如,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\MyApplication.exe)。 在 MyApplication.exe 项下添加转储设置。 如果应用程序崩溃,WER 将首先读取全局设置,然后使用特定于应用程序的设置替代任何设置。

再应用程序崩溃后和终止之前,系统将检查注册表设置,以确定是否要收集本地转储。 完成转储收集后,将会允许应用程序正常终止。 如果应用程序支持恢复,则会在调用恢复回调之前收集本地转储。

这些转储独立于 WER 基础结构的其余部分进行配置和控制。 即使 WER 已禁用,或者用户取消 WER 报告,也可以使用本地转储集合。 本地转储可能与发送到 Microsoft 的转储不同。

详细信息

任务管理器增强功能

Windows 11 在任务管理器中包含一项新功能,允许用户为内核和用户模式进程创建实时内存转储。 可以通过导航到“进程”或“详细信息”选项卡、右键单击所需进程并选择“创建实时内存转储文件”完成此操作。此功能可简化直接从任务管理器界面捕获内存转储的过程。 有关详细信息,请参阅任务管理器实时内存转储

ProcDump 改进

Sysinternals ProcDump 实用工具已得到增强,以支持用于创建转储的各种新选项,例如在线程创建或退出时触发转储、使用特定性能计数器或捕获挂起窗口的转储。 Windows 11 中的 ProcDump 支持 Windows 8.1 及更高版本中引入的所有触发器类型。 有关详细信息,请参阅 ProcDump v11.0

调试增强功能

Windows 11 支持使用 WinDbg 和 CDB 等工具的高级调试功能,以便对完整和小型转储文件进行详细分析。 这些工具已更新,能够更好地处理 Windows 11 中用户模式转储的细微差别,包括能够直接从 CAB 文件读取转储文件,以及同时分析多个转储文件。 了解详细信息:使用 WinDbg 分析故障转储文件