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