适用于 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 (MB) 的分页文件。

如果满足以下条件,则覆盖上一个文件。

  • 出现第二个问题。
  • 将创建另一个完整的内存转储 (或内核内存转储) 文件。

注意

  • 在 Windows 7 中,分页文件可以位于与安装操作系统的分区不同的分区上。
  • 在 Windows 7 中,无需使用 DedicatedDumpFile 注册表项将分页文件放入另一个分区。
  • 在运行 32 位操作系统且具有 2 GB (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 存在多个版本,因此在你的计算机上以下步骤可能会有所不同。 如果是这样,请参见您的产品文档来完成这些步骤。

  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 = 已启用

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