windows – 崩溃转储分析

我希望这不是一个愚蠢的问题,如果是,那么我想至少把它解决,所以我将来不会感到愚蠢.

我们在这里,使用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是MinorVersion,那么什么是1,什么是6?为什么崩溃转储说0F?

部分答案:

MinorVersion确实引用了内部版本号,如果您愿意滥用旧机器/操作系统,您可以通过将(例如)某些XP和2003机箱的内部版本编号与MinorVersion匹配来验证跨平台. dump_header.

尽管内核版本不同,你可能也会注意到(或者至少我做过)那些转储调试文件中的MajorVersion也是0000000f.所以,它显然没有引用内核版本……或者,至少不正确.至于它所涉及的是什么……好吧,绝对不是一个愚蠢的问题,尽管我没有答案.然而.

更新:

发现一些非常刺激的东西.

在Windows 2000和Windows NT 4上,转储调试文件中的MajorVersion是免费系统.这个字段的含义似乎没有记载,尽管免费系统是我在微软看到的所有示例转储中所显示的,例如适用于2008和Windows 7系统的NT Workstation Resource Kiteven the KB on how to use dumpchk.exe.

开始看起来可能毫无意义,或者是一个错误?这次至少不是0xB16B00B5或0x0B00B135.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...