任务管理器实时内存转储
概述
任务管理器可用于创建实时内核内存转储。 这是使用任务管理器创建特定进程的内存转储的现有功能的补充。
实时内核内存转储包含 (内核内存的一致快照(可选)其他类型的内存) ,并将其保存到转储文件。 与其他手动生成内核内存转储的方法不同,此方法不会导致系统崩溃。
有权访问相应符号文件和源代码的程序员可以分析转储文件,以检查系统状态并诊断问题。
创建实时内核内存转储的选项在 系统 进程上可用,类似于在用户模式进程中提供创建内存转储文件的选项。
完整实时内核内存转储包含活动内核内存,可选包含虚拟机监控程序内存和用户模式内存。 用于捕获虚拟机监控程序和用户页面的选项可用于完整的实时内核转储。 或者, 内核堆栈内存转储 是一个较小的文件,仅限于内核处理器状态和所有内核线程堆栈。
有关实时内核内存转储的一般信息,请参阅 内核实时内存转储代码参考。
任务管理器实时转储功能于 2023 年初发布,并首次在 Canary Channel (内部版本 25276 及更高版本中的 Windows Insider Preview 内部版本) 和 Dev Channel (内部版本 23419 及更高版本) ,2023 年 7 月在 Windows OS 内部版本 22621.1992 及更高版本中提供。
使用任务管理器创建系统的实时内核内存转储
若要使用任务管理器捕获实时内核内存转储,请完成以下步骤。
则启动 Windows 任务管理器。
导航到 “进程 ”或 “详细信息”。
找到 系统 进程。
右键单击并选择“ 创建实时内核内存转储文件”。
从下拉菜单中,选择“ 完整实时内核内存转储 ”或“ 内核堆栈内存转储”。
为用户模式进程创建内存转储
任务管理器中使用类似的过程来创建进程的内存转储。 突出显示所需的用户模式进程,然后右键单击并选择“ 创建内存转储文件”。 有关用户模式转储文件的详细信息,请参阅 用户模式转储文件。
实时内核内存转储文件高级选项
实时内核内存转储文件选项在任务管理器设置下可用。
顶部按钮会将实时内核内存转储设置还原为默认值。
选择“ 如果内存压力”选项被选择“中止 ”,如果认为内存可用性不足,实时转储进程将停止。 这是默认设置,可最大程度地减少捕获实时内核转储对系统响应能力的潜在影响。
内核实时内存转储文件设置为内存转储中要包含的信息提供了多个选项。
- 捕获虚拟机监控程序内存页 (带或不带不一切)
- 捕获用户页面
向转储文件添加其他信息会增加其大小,并在记录内存转储时使用其他内存。
捕获虚拟机监控程序内存页
选择“ 捕获虚拟机监控程序内存页” 选项,捕获虚拟机监控程序用于支持 Hyper-V 和虚拟机的内存区域。 有关详细信息,请参阅 Windows 上的 Hyper-V。
可以包含或不包括非任何不切的虚拟机监控程序内存页。
捕获用户页面
如果要排查的问题需要用户模式内存,请启用 “捕获用户页 ”。
有关 Windows 内存和页面使用情况的一般信息,请参阅 由 Pavel Yosifovich、Alex Ionescu、Mark Russinovich 和 David Solomon 的 Windows Internals。
实时内存转储文件位置
内存转储完成后,将显示一个对话框,提供内存转储 .dmp
文件的位置。 单击“ 打开文件位置” 打开文件夹。
实时内核内存转储
默认情况下,实时内核内存转储存储在此处。
%LocalAppData%\Microsoft\Windows\TaskManager\LiveKernelDumps
%LocalAppData% 通常为 C:\Users\<YourUserName>\AppData\Local\
实时用户模式内存转储
实时用户模式内存转储文件存储在 %localappdata%\Temp 目录中,该目录通常位于 Users 目录中。
C:\Users\<YourUserName>\AppData\Local\Temp
对实时内存转储进行故障排除
如果实时内存转储返回错误,检查错误消息了解详细信息。 例如:
任务管理器需要以管理员级别用户身份运行。
遇到超时问题时,请在几分钟后再次尝试转储。
等待任何请求的转储完成,然后再进行任何其他内存转储。
实时内核内存转储创建可能成功,但可能不包含内存的完整内容。 捕获暂时需要足够的可用物理内存来保存要写入转储文件的内存副本。 关闭不需要的应用程序或禁用 hyper-V 和用户模式内存页的捕获可能会增加可以保存到转储文件的内存量。
分析实时内存转储文件
发生实时内存转储时,可以使用用于其他内存转储文件的相同技术来分析转储文件。 若要了解故障期间内存的内容,通常需要了解处理器内存寄存器和程序集编程。 此外,访问失败的源代码将使开发人员能够修复该问题。
有关详细信息,请参阅:
Bug 检查代码:0x161 - LIVE_SYSTEM_DUMP
任务管理器实时内存转储的 bug 检查代码是 bug 检查0x161:LIVE_SYSTEM_DUMP。