我使用内存转储来分析 BSOD 和其他崩溃,并且通常将我的电脑设置为标准的“小内存转储”设置,如下所示。
但是,还有另一个设置“内核内存转储”可用。这两种转储有什么区别?哪一种更适合崩溃分析?
答案1
内核模式转储文件
内核模式转储文件基本上有三种类型:
Windows 8 引入了第四种类型:自动内存转储。
它们之间的主要区别在于大小:较小的转储文件将快速写入磁盘并占用较少的空间;较大的转储文件将包含更多可能有用的调试信息。
另一个区别是位置和覆盖行为。C:\Windows\Memory.dmp
默认情况下,将写入完整/内核转储,覆盖先前的文件(如果有)。小转储存储在C:\Windows\Minidump
文件夹中,由于每个转储都有不同的名称,因此会保留先前的转储。
从我有限的经验来看,我可以说,小型转储本身通常就有足够的数据来诊断基本问题。无论如何,您都应该禁用自动重启选项。这样,如果系统无法创建内存转储,您就可以实际看到错误检查的技术细节。
完成内存转储
此文件包含 Windows 使用的所有物理内存。默认情况下,完整内存转储不包含平台固件使用的物理内存。
此转储文件需要启动驱动器上的页面文件至少与您的主系统内存一样大;它应该能够容纳大小等于您的整个 RAM 加上一兆字节的文件。
来源:完整内存转储
内核内存转储
这种转储文件比完全内存转储小得多。通常,转储文件大约是系统物理内存大小的三分之一。当然,这个数量会有很大差异,具体取决于您的情况。
对于大多数目的而言,此崩溃转储是最有用的。它比完整内存转储小得多,但它仅忽略了不太可能涉及崩溃的内存部分。
来源:内核内存转储
小内存转储
当空间非常有限时,这种转储文件非常有用。但是,由于包含的信息量有限,通过分析此文件可能无法发现不是由崩溃时执行的线程直接引起的错误。
来源:小内存转储