如何使用Windows Debugge进行蓝屏分析


提到Windows系统蓝屏报错,即使是普通的电脑用户也有可能经常遇到。导致系统蓝屏的原因有多种多样,如系统病毒、驱动程序、硬件故障等等,但终其原因大致可以分为软件、硬件两大类问题。

首先,我们需要了解一下究竟什么是蓝屏报错?它产生的机理又是什么?下面我们看到的画面就是典型的蓝屏报错截图。

现在我们一起从Windows系统蓝屏报错的定义、产生的原因及方式三方面展开学习。

第一,来看针对蓝屏故障的定义

这里指的就是大家经常称之为“系统蓝屏”、“系统崩溃”之类的东西,英文称之为BSOD也就是英文Blue Screen of Death,蓝屏死机的意思。从专业角度讲,这一术语被定义为当Microsoft Windows系统崩溃或停止执行时,所显示的蓝色屏幕。而我们平时所说的“系统崩溃,System Crash”或“内核错误,Kernel Error”,异或“停止错误,Stop Error”的诊断专业术语则为“程序错误检查,Bug Check”。

第二,再理解一下蓝屏产生原因

一旦遇上系统蓝屏崩溃,大多数人都会以为Windows不行了,罪魁祸首就是Windows,或者Windows不够强悍、不够稳定的意思。可是要知道,每当有内核模式设备驱动程序或者子系统引发了一个非法异常状况,Windows就会面临这个艰难的抉择,虽然Windows最终还是选择了崩溃,但是这并不代表它就不能够忽略该异常,如果选择忽略,就意味着将要让设备驱动程序或者子系统继续往下执行。

Windows之所以要选择“自我灭亡”,是因为它不知道该错误是否能被隔离出来,从而不伤害系统的其它程序与数据,或者该组件将来是否能够恢复正常,而且Windows也非常清楚的知道,这个异常更有可能来源于更深层的问题,比如由于系统内存的常规功能故障,或者由于其他硬件设备不能正常工作等等。在这种情况下,如果允许系统继续运行可能导致更多的异常,而且存储在磁盘或其他外设中的数据可能也会遭受破坏。

Windows意识到这样做的风险太大了,为了系统程序、数据的安全与完整,将电脑用户的损失在第一时间内减小至最低,Windows于是产生了蓝屏报错现象的可能。

第三,我们来稍微了解一下蓝屏故障产生方式

当Windows操作系统检测到引发崩溃的致命错误时,系统自己执行崩溃函数KeBugCheckEx模块。当该函数接收一个停止代码STOP Code后:

首先,该系统所有处理器上的所有中断将被屏蔽,然后系统将显示器切换到低分辨率的VGA图形模式,并绘制出一个蓝色背景,然后显示此停止代码,并且后面紧跟一些对用户诊断错误有帮助的关键信息。至于为什么要切换到低分辨率的VGA模式,这是因为所有Windows平台显卡均支持的这种通用显示模式。

最后,KeBugCheckEx调用所有已注册的设备驱动程序错误检查回调函数,这种回调函数通过调用KeRegisterBugCheckCallback函数来注册,从而让这些驱动程序停止运行它们所支配的设备。此外也有系统数据结构已经被破坏得太严重,以至于蓝屏都显示不出来的可能性。

至此,我们了解了Windows系统蓝屏的定义、产生的原因及方式等相关知识,但这还没有达到我们的最终目的,因为我们最终是要通过系统的蓝屏的相关信息,实现对蓝屏现象的分析及故障解决。

下面,我们将为大家介绍一款微软推出的蓝屏故障诊断工具Windows Debugger,它能帮助故障诊断者根据系统蓝屏产生的蓝屏代码、Dump文件等故障信息进行分析、诊断,以便我们尽快定位、解决蓝屏报错的相关软、硬件故障。现在,以实际操作的形式为大家演示:

步骤1,软件下载与安装。

该工具软件由微软公司免费提供,各位可以直接去微软官方网站下载,目前6.11.1.404版本的可用下载地址为:

http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.11.1.404.msi

━━━━━━━━━━━━━━━

【完美领域】博客 http://www.areawin7.com

发表评论

电子邮件地址不会被公开。