收集用户模式转储

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

默认情况下不启用此功能。 启用该功能需要管理员权限。 要启用和配置该功能,请在 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
0x00000121MiniDumpWithDataSegs 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 的转储不同。