Windows系统崩溃转储分析全解析
1. 崩溃转储的必要性
在Windows系统中,当系统崩溃时,由于默认会自动重启,用户往往来不及记录蓝屏上显示的信息。因此,Windows默认会尝试将系统崩溃的相关信息记录到磁盘,以便后续分析,这就引出了崩溃转储文件的概念。
2. 崩溃转储文件类型
Windows系统在崩溃时可记录三种不同级别的信息:
-完全内存转储:包含崩溃时的所有物理内存。这种转储要求页面文件至少为物理内存大小加1MB(用于头部)。在大内存系统中,可能需要非常大的页面文件,因此这种转储文件设置不太常见。Windows NT 4仅支持这种类型的崩溃转储文件,它也是Windows Server系统的默认设置。
-内核内存转储:仅包含崩溃时物理内存中存在的内核模式读写页面,不包含属于用户进程的页面。由于大多数崩溃源于内核内存问题,用户进程页面对于调试崩溃可能并非必需。此外,所有与崩溃转储分析相关的数据结构,如正在运行的进程列表、当前线程的堆栈和已加载驱动程序列表,都存储在非分页内存中,并会保存在内核内存转储中。内核内存转储的大小无法预测,因为它取决于操作系统和机器上存在的驱动程序分配的内核模式内存量。
-小内存转储:大小为64KB(64位系统为128KB),也称为微型转储或分类转储,是Windows Professional的默认设置。它包含停止代码和参数、已加载设备驱动程序列表、描述当前进程和线程的数据结构(称为EPROCESS和ETHREAD)以及导致崩溃的线程的内核堆栈。