Windows 的内存转储文件选项概述

本文介绍 Windows 的内存转储文件选项。

适用于:Windows 7 Service Pack 1,Windows Server 2012 R2
原始 KB 编号: 254649

摘要

可以配置以下操作系统以编写调试信息:

  • Windows 7
  • Windows Server 2012 R2

当计算机意外停止时,调试信息可以写入不同的文件格式 (也称为内存转储文件) ,因为“ 停止 ”错误 (也称为 蓝屏、系统崩溃或 bug 检查) 。 还可以将 Windows 配置为不将调试信息写入内存转储文件。

Windows 可以生成以下任一内存转储文件类型:

完成内存转储

当计算机意外停止时,完整的内存转储会记录系统内存的所有内容。 完整的内存转储可能包含收集内存转储时正在运行的进程中的数据。

如果选择 “完成内存转储 ”选项,则启动卷上必须有一个分页文件,该文件足以容纳所有物理 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 存在多个版本,因此在你的计算机上以下步骤可能会有所不同。 如果是这样,请参见您的产品文档来完成这些步骤。

  1. 单击“开始”,然后单击“控制面板”
  2. 单击 “性能和维护”,然后单击 “系统”。
  3. “高级”选项卡上,单击“启动和恢复”下的“设置”。

注意

必须重启 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 将提供合理的工作帮助。 但是,你可能需要直接与制造商联系。 制造商最有资格为他们在硬件上安装的软件提供支持。