Windows Dump 分类

date
Feb 22, 2024
slug
varieties-of-windows-dumps
status
Published
tags
Debug
Dump
summary
这篇文章介绍了在Windows系统上的Dump文件类型,分为内核模式和用户模式。内核模式包括完全内存转储、核心内存转储、小内存转储、自动内存转储和活动内存转储。而用户模式则有完整用户模式转储和小型转储。不同类型的Dump文件大小、包含的信息和用途各不相同,可以用于系统和应用程序的故障分析与诊断。
type
Post

引入

Windows 上 Dump 文件主要分为内核模式 Dump 文件和 用户模式 Dump 文件。
内核模式 Dump 文件有:
用户模式 Dump 文件分为:

内核模式 Dump

以下是内核模式下 dump 的对比
类型
大小
包含的信息
用途
默认存储位置
完整内存转储 (Complete Memory Dump)
等于物理内存的大小
整个系统的RAM内容,包括正在运行的进程、驱动程序以及内核
用于进行深入分析和调试,尤其是在需要全面了解系统状态时
%SystemRoot%\Memory.dmp
内核内存转储 (Kernel Memory Dump)
小于物理内存大小(转储文件的大小约为系统上物理内存的三分之一),但比小型转储大
它仅包括分配给 Windows 内核和硬件抽象层 (HAL) 的内存,以及分配给内核模式驱动程序和其他内核模式程序的内存,不包含未分配的内存或用户空间程序的信息
适用于大多数系统故障分析,因为它包含了大部分对调试有用的信息,而且大小适中
%SystemRoot%\Memory.dmp
小内存转储 (Small Memory Dump)
最小,256KB
包括最基本的信息,如停止错误的参数和一些内存信息,足够用来诊断常见错误
用于快速分析和诊断常见的系统问题,占用空间小,影响最小
%SystemRoot%\Minidump 目录中
自动内存转储 (Automatic Memory Dump)
大小介于内核内存转储和完整内存转储之间
默认与内核转储相同,Windows会根据系统配置和状态自动调整大小和包含的信息
Windows 8和更高版本引入,旨在自动选择最合适的转储类型,以便进行故障分析
%SystemRoot%\Memory.dmp
活动内存转储 (Active Memory Dump)
大小介于内核内存转储和完整内存转储之间
类似完整内存转储,包括所有活动内核模式内存和用户模式内存,但不包括空闲内存页面
Windows Server 2012和更高版本用于服务器,以减少转储大小同时保留重要信息
%SystemRoot%\Memory.dmp

用户模式下 Dump

以下是用户模式下 dump 的对比
类型
大小
包含的信息
用途
完整用户模式转储 (Full User-Mode Dumps)
可以非常大,取决于应用程序的内存使用情况
包括应用程序的完整内存镜像,包括所有堆栈、线程、句柄和加载的模块等信息
用于深入分析应用程序的状态和行为,尤其适合复杂的问题,需要全面了解应用程序的状态时使用
小型转储 (Minidumps)
相对较小,可以配置为包含不同级别的信息,从几KB到几MB
可以包含不同的信息集,包括但不限于堆栈跟踪、模块列表、线程信息、和部分内存区域等
用于快速诊断应用程序的问题。由于它们较小,可以更容易地被传输和分析。常用于初步故障排除

完整用户模式转储 (Full User-Mode Dumps)

优点:提供了应用程序当前状态的全面视图,包含所有必要的信息来进行深入分析。
缺点:文件大小可能非常大,特别是对于内存使用量大的应用程序,这可能会导致分析过程中的性能问题和存储问题。

小型转储 (Minidumps)

优点:小而灵活,可以根据需要包含不同级别的信息,便于快速传输和分析。
缺点:可能不包含解决问题所需的所有信息,有时需要结合多个小型转储或请求更详细的转储来全面分析问题。

总结

选择哪种类型的用户模式转储文件,主要取决于你需要解决的问题的性质、所需的信息详细程度以及资源的可用性。对于大多数日常的应用程序调试,小型转储通常足够使用;而对于更复杂或难以重现的问题,则可能需要完整的用户模式转储来获取足够的信息进行深入分析。

© Frend Guo 2022 - 2024