任务管理器实时内存转储

概述

任务管理器可用于创建实时内核内存转储。 除了现有的使用任务管理器创建特定进程内存转储的功能之外。

实时内核内存转储包含内核内存以及其他可选类型内存的一致快照,并将其保存到转储文件中。 与其他手动生成内核内存转储的方法不同,此方法不会导致系统崩溃。

有权访问相应符号文件和源代码的程序员可以分析转储文件来检查系统状态和诊断问题。

创建实时内核内存转储的选项在 系统 进程中可用,类似于创建内存转储文件的选项在用户模式进程中可用。

完整实时内核内存转储包含活动内核内存,可以选择性地包含管理程序内存和用户模式内存。 捕获虚拟机监控程序和用户页面的选项可用于完整的实时内核转储。 或者, 内核堆栈内存转储 是一个较小的文件,仅限于内核处理器状态和所有内核线程堆栈。

关于实时内核内存转储的一般信息,请参阅 实时内核内存转储代码参考

任务管理器的实时转储功能于 2023 年初发布,首次在 Canary 频道(内部版本 25276 及更高版本)和开发频道(内部版本 23419 及更高版本)的 Windows 内部预览版中推出,并于 2023 年 7 月在 Windows OS 内部版本 22621.1992 及更高版本中可用。

使用任务管理器创建系统的实时内核内存转储

若要使用任务管理器捕获实时内核内存转储,请完成以下步骤。

  1. 启动 Windows 任务管理器。

  2. 导航到 “进程 ”或 “详细信息”。

  3. 找到 系统 进程。

  4. 右键单击并选择“ 创建实时内核内存转储文件”。

  5. 从下拉菜单中选择 “完全实时内核内存转储 ”或“ 内核堆栈内存转储”。

任务管理器实时内存转储用户界面的屏幕截图。

为用户模式进程创建内存转储

任务管理器中使用类似的过程来创建进程的内存转储。 突出显示所需的用户模式进程,然后右键单击并选择“ 创建内存转储文件”。 有关用户模式转储文件的详细信息,请参阅 User-Mode 转储文件

即时内核内存转储文件高级选项

实时内核内存转储文件选项在任务管理器设置下可用。

任务管理器实时内存转储高级选项用户界面的屏幕截图。

顶部按钮会将实时内核内存转储设置还原为其默认值。

选择内存压力中止选项时,如果内存可用性被认为不足,则实时转储进程将停止。 这是默认设置,可最大程度地减少捕获实时内核转储对系统响应能力的潜在影响。

内核动态内存转储文件设置提供了多种选项,用于选择在内存转储中要包含的信息。

  • 捕获虚拟机管理程序内存页 (包含或不包含非必要页)
  • 捕捉用户页面

向转储文件添加其他信息会增加其大小,并在记录内存转储时使用其他内存。

捕获虚拟机监控程序内存页

选择“ 捕获虚拟机监控程序内存页 ”选项,以捕获虚拟机监控程序用于支持 Hyper-V 和虚拟机的内存区域。 有关详细信息 ,请参阅 Windows 上的Hyper-V

可以包含或不包含非必要的虚拟机管理程序内存页。

捕获用户页面

如果故障排除问题需要用户模式内存,请启用 捕获用户页面

有关 Windows 内存和页面使用情况的一般信息,请参阅 Pavel Yosifovich、Alex Ionescu、Mark Russinovich 和 David 所罗门的 Windows 内部

实时内存转储文件位置

内存转储完成后,将显示一个对话框,该对话框提供内存转储 .dmp 文件的位置。 单击“ 打开文件位置 ”以打开文件夹。

实时内核内存转储

默认情况下,实时内核内存转储存储在此处。

%LocalAppData%\Microsoft\Windows\TaskManager\LiveKernelDumps

%LocalAppData% 通常是 C:\Users\<YourUserName>\AppData\Local\

实时用户模式内存转储

实时用户模式内存转储文件存储在通常位于 Users 目录中的 %localappdata%\Temp 目录中。

C:\Users\<YourUserName>\AppData\Local\Temp

实时内存转储收集过程中的故障排除

如果实时内存转储返回错误,请检查错误消息以了解详细信息。 例如:

  • 任务管理器需要以管理员级别用户身份运行。

  • 如果遇到超时问题,请尝试在几分钟后再次执行数据转储。

  • 等待所有请求的转储完成后,再执行其他内存转储。

  • 实时内核内存转储创建可能成功,但可能不包含内存的完整内容。 捕获暂时需要足够的可用可用物理内存来保存要写入转储文件的内存副本。 关闭不需要的应用程序或禁用 Hyper-V 和用户模式内存页的捕获,可能会增加可以保存到转储文件的内存量。

分析实时内存转储文件

发生实时内存转储时,可以使用用于其他内存转储文件的相同技术分析转储文件。 若要了解故障期间内存的内容,通常需要了解处理器内存寄存器和程序集编程。 此外,访问失败的源代码将使开发人员能够解决此问题。

有关详细信息,请参见:

Bug 检查代码:0x161 - LIVE_SYSTEM_DUMP

任务管理器实时内存转储的错误检查代码是错误检查 0x161:LIVE_SYSTEM_DUMP

另请参阅