感谢 chinaperrylee
今天和你们来谈谈当碰到系统蓝屏时应该去如何应对,Windows蓝屏是微软终极错误报告方式,也在微软内部称为蓝屏之死,可能咱们碰到系统蓝屏是很是忽然的,没有前期预兆和准备,只能从新启动从而致使数据的丢失。因此它是一个比较严重的错误了。微软DDK对蓝屏有一个官方定义:当windows操做系统遇到一种可能损害系统安全的状况,系统就会中止响应,这种状况被称为错误检查,也会被认为内核错误或系统错误。你们有没有想过Windows为何要蓝屏,其实缘由很简单,操做系统检测到了有人已经违反了系统的规则并危及系统安全,而操做系统必需要将它KILL掉,又由于它是内核态的代码而且权限很高,因此Windows就不会发现错误报告了,只能采用蓝屏方式。就像咱们在运动比赛中同样,运动员违规比赛规则的话,裁判就会出去红牌让他离场。
我在这里先截张图给你们看看。
我就来介绍上面蓝屏的错误,首先我标出的第一个框是蓝屏的序言,代表Windows已经检测到了一个问题已经中止运行,并防止对你的计算机形成损害,基本全部的系统蓝屏的序言都是这样一个描述;我标出的第二个框是蓝屏错误状况的描述,这个描述根据不一样类型的蓝屏会产生不会的描述,咱们如今看到的描述是对于系统操做的一个关键线程或者关键进程被意外的退出或终止;我标出的第三个框是蓝屏的建议错误,也和蓝屏序言同样,是全部系统蓝屏都是同样的描述,应该来讲对IT人员的意义不大,大概意思是让你从新启动计算机,确保你的硬件和软件是否被正确安全,若是问题依旧,建议你删除你的硬件或软件,若是还不行就进入系统的高级模式。我标出的第四个框是蓝屏的错误代码和参数,也是蓝屏错误中最为关键最为核心的信息,对咱们IT人员分析和解决蓝屏问题是十分重要的信息。0x000000F4是蓝屏的中止代码,括号里面的四个参数是蓝屏中止参数;我标出的第五个框是蓝屏的转储信息,也称为Dump信息,也就是说Windows把发生蓝屏时的关键信息转储到文件中。
我上面的这张截图就是设置操做系统在内核转储时的必要设置,自动从新启动就是说当系统发生蓝屏时会自动重启,一般咱们会取消勾选,否则咱们就看不到蓝屏错误代码了,还有就是写入调试信息,咱们一般选择的是小内核转储文件,而不会选择核心内核转储,否则产生的DUMP文件会很是的大,而小内核转储才64KB,不要小看这64KB的文件,里面的信息所有都是系统在转储过程当中的关键信息,对IT人员来讲是足以进行蓝屏的调试工做的。最后就是DUMP文件的存放位置了。
OKAY,谈了这么多了,我准备想把蓝屏在转领过程当中发生一些动做详细的告诉给你们,好比蓝屏的信息收集、关闭中断、调用一些回调函数、蓝屏是如何绘制的等,可是,考虑到这是操做系统的一些底层内容,你们确定感到很烦了,那么我就言归正传了,给你们推出一款很是实用的微软蓝屏调试工具,它就是WinDebuger,简称Windbg。我提供了它的下载路径,你们有时间能够下载体验下。
这就是我安装好Windbg出现的调试画面,感受十分朴实啊!!
下面,就是设置Symbol File Path,这边我要和你们解释一下这是什么意思,其实这个设置就是把咱们生成的DUMP转储文件,先提交给微软的Symbol 服务器进行编译,由于DUMP文件缺省是一些二进制的编码,咱们普通人是看不通的,要把它编译成咱们能识别的代码,其实这里的Symbol File Path里面就是微软Symbol 服务器的地址,这里我有一篇微软KB来解释使用 Microsoft Symbol Server 获取调试符号文件。
[url]http://support.microsoft.com/kb/311503[/url]
。我下面就给你们来SHOW一下,我把我操做系统下生成的一个MINI Dump文件进行简单的调试,并给你们看看Windbg是如何工做的。
打开一个Crash Dump文件
在C:\windows\minidump\下生成了一个64KB的文件,后缀名为.dmp格式
Windbg自动加载此Dump文件,此时正在链接微软的Symbol服务器
Dump文件已经被加载成功,并已经正确的链接上了微软的Symbol服务器了
此时,咱们在下面的输入框中输入!analyze -v 参数
Windbg会自动的帮咱们进行简单的文件分析,并生成一些对咱们IT人员来讲有价值的调试信息,好比堆栈信息,处理对象,映像名称等,对咱们IT管理员来讲只要看看Image_Name就能够了,一般这里会出现一个文件名称,好比驱动文件名称等,咱们就能够初步判断蓝屏多是由一些第三方驱动错误所致使的,这样咱们就能够在系统下删除这个文件进行尝试。
咱们还能够输入KD或者KC的命令进行底层堆栈的排错,可能这边通常人会感受痛苦了,这须要微软的系统开发人员才可能达到的水平。
好了,就介绍到这里了,感受有点像是介绍微软操做系统内核知识同样,这个工具但愿你们多研究研究,这个工具是有帮助文档的,你们能够对照文档进行调试,并使用相应的命令。