适用于 Windows 的内存转储文件选项概述
本文介绍适用于 Windows 的内存转储文件选项。
原始 KB 数: 254649
总结
可以将以下操作系统配置为编写调试信息:
- Windows 7
- Windows Server 2012 R2
当计算机因停止错误(也称为蓝屏、系统崩溃或 bug 检查)而意外停止时,调试信息可以写入不同的文件格式(也称为内存转储文件)。 还可以将 Windows 配置为不将调试信息写入内存转储文件。
Windows 可以生成以下任一内存转储文件类型:
- 完整内存转储
- 内核内存转储
- 小型内存转储 (64 KB)
- 自动内存转储
完整内存转储
当计算机意外停止时,完整的内存转储会记录系统内存的所有内容。 完整的内存转储可能包含收集内存转储时正在运行的进程中的数据。
如果选择 “完整内存转储 ”选项,则必须在启动卷上有一个分页文件,该文件足以容纳所有物理 RAM 和 1 兆字节(MB)。
如果满足以下条件,将覆盖上一个文件。
- 出现第二个问题。
- 将创建另一个完整的内存转储(或内核内存转储)文件。
注意
- 在 Windows 7 中,分页文件可以位于与安装操作系统的分区不同的分区上。
- 在 Windows 7 中,无需使用 DedicatedDumpFile 注册表项将分页文件放入另一个分区。
- “ 完整内存转储 ”选项在运行 32 位操作系统且具有 2 GB 或更多 RAM 的计算机上不可用。 有关详细信息,请参阅 指定系统意外停止时发生的情况。
内核内存转储
内核内存转储仅记录内核内存。 当计算机意外停止时,它会加快在日志中记录信息的过程。 必须具有足够大的页文件才能容纳内核内存。 对于 32 位系统,内核内存通常介于 150 MB 和 2 GB 之间。
此转储文件不包括未分配的内存或分配给用户模式程序的任何内存。 其中包括:
- 分配给 Windows 2000 及更高版本中内核和硬件抽象层(HAL)的内存。
- 分配给内核模式驱动程序和其他内核模式程序的内存。
在大多数情况下,此转储文件最有用。 它小于完整的内存转储文件。 但它只省略那些不太可能卷入问题的内存部分。
如果满足以下条件,则选中“覆盖任何现有文件”设置时 ,将覆盖上一个文件 。
- 出现第二个问题。
- 将创建另一个内核内存转储文件(或完整的内存转储文件)。
小型内存转储
小型内存转储记录最小的有用信息集,这些信息可能有助于识别计算机意外停止的原因。 此选项需要启动卷上至少 2 MB 的分页文件,并指定每次计算机意外停止时,Windows 2000 及更高版本都会创建新文件。 这些文件的历史记录存储在文件夹中。
此转储文件类型包括以下信息:
- Stop 消息及其参数和其他数据
- 已加载驱动程序的列表
- 已停止的处理器的处理器上下文 (PRCB)
- 停止的进程的进程信息和内核上下文 (EPROCESS)
- 停止的线程的进程信息和内核上下文 (ETHREAD)
- 停止的线程的内核模式调用堆栈
当空间有限时,此类转储文件非常有用。 但是,由于包含的信息有限,因此无法通过分析此文件发现未由在问题时运行的线程直接引起的错误。
如果满足以下条件,将保留上一个文件。
- 出现第二个问题。
- 创建第二个小内存转储文件。
为每个附加文件指定一个不同的名称。 日期在文件名中编码。 例如,Mini022900-01.dmp是 2000 年 2 月 29 日生成的第一个内存转储。 文件夹中保留 %SystemRoot%\Minidump
所有小型内存转储文件的列表。
配置转储类型
若要配置启动和恢复选项(包括转储类型),请执行以下步骤。
注意
由于 Windows 存在多个版本,因此在你的计算机上以下步骤可能会有所不同。 如果是这样,请参见您的产品文档来完成这些步骤。
- 单击「开始」,然后单击“控制面板”。
- 单击“性能和维护”,然后单击“系统”。
- 在“高级”选项卡上,单击“启动和恢复”下的“设置”。
注意
必须重启 Windows 才能使更改生效。
各种转储类型的工具
可以使用标准符号调试器(例如I386kd.exe)加载完整的内存转储和内核内存转储。 Windows 2000 支持 CD-ROM 随附I386kd.exe。
使用Dumpchk.exe加载小型内存转储。 还可以使用Dumpchk.exe来验证是否已正确创建内存转储文件。
卷定义
启动卷:包含 Windows 操作系统及其支持文件的卷。 启动卷可以,但不必与系统卷相同。
系统卷:包含必须加载 Windows 的硬件特定文件的卷。 系统卷可以是,但不必与启动卷相同。 Boot.ini
Ntdetect.com
和Ntbootdd.sys文件是位于系统卷上的文件的示例。
启动和恢复的注册表值
以下注册表值在以下项下 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl
使用。
- CrashDumpEnabled REG_DWORD 0x0 = None
- CrashDumpEnabled REG_DWORD 0x1 = 完整内存转储
- CrashDumpEnabled REG_DWORD 0x2 = 内核内存转储
- CrashDumpEnabled REG_DWORD 0x3 = 小型内存转储 (64 KB)
- CrashDumpEnabled REG_DWORD 0x7 = 自动内存转储
CrashControl 的其他注册表值:
0x0 = 禁用
0x1 = 已启用
AutoReboot REG_DWORD 0x1
DumpFile REG_EXPAND_SZ
%SystemRoot%\Memory.dmp
LogEvent REG_DWORD 0x1
MinidumpDir REG_EXPAND_SZ
%SystemRoot%\Minidump
覆盖REG_DWORD 0x1
SendAlert REG_DWORD 0x1
注意
必须重启 Windows 才能使更改生效。
测试以确保可以创建转储文件
有关如何将计算机配置为生成转储文件以进行测试的详细信息,请参阅 Windows 功能,允许使用键盘生成内存转储文件。
默认转储类型选项
- Windows 7 (所有版本):内核内存转储
- Windows Server 2012 R2 (所有版本):自动memory.dmp
最大分页文件大小
最大分页文件大小限制如下:
限制 | x86 | x64 | IA-64 |
---|---|---|---|
分页文件的最大大小 | 4 千兆字节(非 PAE) 16 TB (PAE) |
16 TB | 32 TB |
最大分页文件数 | 16 | 16 | 16 |
总分页文件大小 | 64 千兆字节(非 PAE) 256 TB (PAE) |
256 TB | 512 TB |
对基于 x64 的 Windows 版本的技术支持
硬件制造商为基于 x64 的 Windows 版本提供技术支持和帮助。 你的硬件制造商提供支持,因为你的硬件随附了基于 x64 的 Windows 版本。 硬件制造商可能已使用唯一组件自定义 Windows 的安装。 单独组件可能包括特定设备驱动程序,也可以包括可选设置以最大限度提高硬件性能。 如果需要基于 x64 的 Windows 版本的技术帮助,Microsoft将提供合理的帮助。 但是,你可能需要直接与制造商联系。 制造商最有资格为他们在硬件上安装的软件提供支持。