Win系统蓝屏检测分析思路与处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows 蓝屏检测/分析思路与处理
2014.12.12 By 郭爽
一.基本概念
1.小存储器转储文件
小存储器转储文件记录可帮助确定计算机为什么意外停止的最小的有用信息集。此选项要求启动卷(一般指系统分区,如C 区)上有一个至少为2 MB 的页面文件。
在运行 Microsoft Windows 2000 或更高版本的计算机上,计算机每次意外停止时 Windows 都会新建一个文件。这些文件的历史记录存储在一个文件夹中。
2.为什么系统会出现蓝屏
NT内核的操作系统采用的是分层管理结构(层又称为模式),主要有用户层(User Mode)和内核层(Kernel Mode),出现蓝屏情况,是由于“用户层”(用户或者系统软件进行的操作)和“内核层”“沟通”过程中产生了冲突。我们可以通过下面这个形象的比喻来理解Windows的运行规范和蓝屏起因。平时产品制造厂运行得有序而高效,每个生产小组加班加点制造各种用途的产品,工厂里有个极为严格的规定,那就是不管要用什么装配零件,都必须经过直接控制所有零件的厂领导(具有高特许级别,可以直接访问所有硬件和内存)的批准,之后才能到仓库中提取相应零件,而生产小组只负责生产(只拥有较低权限,不能直接访问硬件和有限地利用内存)。有一天,A 生产小组没有经过厂领导批准,偷偷跑到仓库里面想拿一个装配零件,但马上就被年年被评为先进的值班员Dr.Watson发现了,于是
Dr.Watson立即通知厂领导,这个生产小组的工作马上被停止,而且还在厂宣传栏贴出一个告示:XXX 生产小组出现了错误,厂领导决定马上将其关闭、整顿,并会记录在案,以观后效。但A 生产小组的错误似乎没有引起大家的注意,一天,D生产小组居然闯进仓库哄抢装配零件,为了防止零件资源失控,产生更严重的混乱,厂领导立即决定停止整个工厂的工作,并命令保卫科对所有生产小组进行全面检查,保卫科在检查后为厂领导提交了一份用蓝色纸写的报告,就是大家经常看到的“蓝屏图片”了。
二.DUMP 文件
1.概念: Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存
到dump文件中。该文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。
2.用途: Dump 文件分析的用途之一就是分析蓝屏产生的原因。这种系统级的错误
算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等)。说它是比较严重,是因为毕竟Windows还提供了dump文件给用户分析,至少能比较容易的找到错误的原因。一般蓝屏要么是内核程序中的异常或违规,要么是数据结构的损坏,也有启动或关机的时候内核出错。有时候蓝屏是一闪而过,紧接着是系统重启;有时候是蓝屏等待。总之蓝屏的时候都提示了一些停止代码和错误信息,不过这些提示是不全面的,最多知道哪个模块出错(比如驱动)。想了解进一步的信息,或者通过搜索引擎,最好的方式当然是dump文件分析。当然,如果有更进一步研究的欲望,内核调试是更好的方法,不过这需要某些软件支持和调试技巧。
3.类型
Dump文件有三种:完整内存转储,内核内存转储,小内存转储。“系统属性”
中的高级选项中可以看到这些设置。完整内存转储太大,一般是物理内存大小或多一些,包括了用户进程页面,这种方式不实用,2GB的物理内存转储出来至少要2GB的磁盘空间(还有文件头信息)。内核转储一般是200MB大小(物理内存小于4GB),它只是包含了所有属于内核模式的物理内存。小内存转储一般是64KB(64位上是 128KB),这两种方式是更常用的。
4.小内存转储下的 DUMP文件
小内存转储在\Windows\Minidump文件夹下生成了一个叫Mini日期+序列
号.dmp的文件,这个珍贵的资源就是系统崩溃时刻的状态。前面说到的 dump 文件分析,其实就是借助工具软件读取该文件,然后对文件进行人为分析。
三. DUMP 文件分析工具
常见的DUMP文件分析工具有:微软出品的Windbg 和第三方软件BlueScreenView,首选:Windbg。
1. Windbg
⑴概念:WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,
可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。针对蓝屏这种情况,我们可以借助它来进行简单的分析。
⑵官方原版下载:分为 x86 和 x64 两个版本,即:32位和 64位两个版本
● x86 32位系统版本:
/download/symbols/debuggers/dbg_x86_6.11.1.4
04.msi
● x64 64位系统版本:
/download/symbols/debuggers/dbg_ia64_6.11.1.
404.msi
●绿色版(32和64位系统通用):
http://101.199.96.36//windbg/Debuggers.zip
2. BlueScreenView
⑴说明:这款名为BlueScreenView(蓝屏信息速查)的免费小软件能够分析出Windows发生蓝屏崩溃后生成的“minidump”文件,使其容易阅读,从而帮助用户找出问题的症结所在。虽然它的功能没有windbg强大,但是软件中附带的一个小功能,会让我们有特别的“惊喜”
⑵下载:
● 1.29 绿色汉化版:/soft/40054.htm
四. 开启小内存转储(以便系统生成dump文件)
要使系统能够记录 dump 文件,我们必须事先确保系统盘开启了“虚拟内存,并且系统中的“小内村转储”功能已经开启。虚拟内存我就不截图了,属于基本操作。开启小内存转储,以Windows 7 为例,XP后面我附个图。具体方法如下:
1.右键点击:计算机(我的电脑),选择:属性