崩溃转储分析

崩溃转储分析

我希望这不是一个愚蠢的问题,如果是的话,那么我至少想把它解决掉,这样我将来就不会觉得自己那么愚蠢。

现在,我们使用 Windbg 加载 Windows 崩溃转储。以下是调试器输出的前几行:

0: kd> .dumpdebug
----- 64 bit Kernel Summary Dump Analysis
DUMP_HEADER64:
MajorVersion 0000000f
MinorVersion 00001db1
...

我基本理解了 MinorVersion。它是十六进制的,转换为十进制就是 7601。Windows 管理员已经能够从中判断出这一定是 Win7 x64 计算机或带有 SP1 的 2k8 R2 计算机。但 7601 不是内部版本号吗?它应该是 Major.Minor.Build/Revision... 对吧?

另外我不明白MajorVersion。它应该是6。这个Windows版本是6。但是十六进制的0000000f不是十进制的15吗?

例如,当您启动命令提示符时,此版本的 Windows 的完整版本字符串是 6.1.7601。如果 7601 是次要版本,那么 1 是什么,6 是什么?为什么崩溃转储显示 0F?

答案1

部分答案:

确实MinorVersion是指版本号,如果您愿意滥用较旧的机器/操作系统,您可以通过将(例如)某些 XP 和 2003 盒子的版本号与 中的 进行匹配来跨平台MinorVersion验证dump_header

您可能还会注意到(或者至少我注意到了),尽管内核版本不同,但MajorVersion这些转储调试文件中的 也是0000000f。因此,它显然不是指内核版本……或者至少不正确。至于它指的是什么……好吧,这绝对不是一个愚蠢的问题,尽管我还没有答案。目前还没有。

更新:

发现了一些非常恼人的事情。

在 Windows 2000 和 Windows NT 4 中,MajorVersion转储调试文件中的 是free system。这个字段的含义似乎没有记录,尽管free system我在 Microsoft 看到的所有示例转储中都显示了它的含义,例如NT工作站资源包, 和甚至关于如何使用的知识库dumpchk.exe适用于2008和Windows 7系统。

看起来好像它毫无意义,或者是一个错误?至少这次0xB16B00B5不是。0x0B00B135

相关内容