POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 12367|回复: 7
打印 上一主题 下一主题

使用WinDbg分析电脑蓝屏的原因。

[复制链接]
跳转到指定楼层
1#
发表于 2009-9-10 17:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近我的Windows XP系统经常意外的蓝屏,本来想重装系统,但是由于需要重装的软件太多,于是决心查清楚蓝屏的具体原因,经过一番努力,终于找到了一个很好的蓝屏故障解决办法,下面和大家一起分享。

  首先在讲解之前先做几个名词解释,以便大家理解本文:

第一步:打开“小内存转储”功能

  右键点击“我的电脑”,选“属性→高级→启动和故障恢复→设置”,打开“启动和故障恢复”选项卡,在“写入调试  信息”下拉列表中选中“小内存转储(64KB)”选项,如图1。



小知识:小内存转储

  内存转储是用于系统崩溃时,将内存中的数据转储保存在转储文件中,供给有关人员进行排错分析使用。小内存转储,就是只保存内存前64KB的基本空间数据的内存转储文件。这样可以节省磁盘空间,也方便文件的查看。

  选好后点“确定”,这样操作系统在下次出现蓝屏时,就会记录下当时内存中的数据,并存储为dump文件,该文件存放在系统盘的minidump文件夹下。

小知识:Dump文件

  Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。

第二步:从微软的网站下载安装WinDbg

  WinDbg是微软发布的一款优秀的源码级调试工具,可以调试Dump文件,这里我们用来查找蓝屏故障的原因,下载地址为:http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx。这个过程就不赘述了。安装时,一路选“下一步”就行了。

第三步:使用WinDbg诊断蓝屏错误

  系统再次出现蓝屏后重启,在minidump文件夹下会出现一个以日期为文件名的.dmp文件,这就是我们要分析的文件。接下来点击“开始菜单→程序→Debugging tools for windows(x86)-WinDbg”,打开WinDbg程序,点击程序窗口的“File→Open Crash Dump”,打开位于系统盘的minidump文件夹下的以日期为文件名的.dmp文件(图2)。


打开后程序就开始自动分析文件了,分析完后,看最下面,找到“Probably caused by”这一行,其后面的文件就是引起蓝屏的罪魁祸首。如图3。

第四步:解决蓝屏故障

  我们对导致蓝屏的这个文件名在网上搜索,基本就知道是什么文件了,一般网上也有相关的解决办法,看看要删除些什么插件、打什么补丁或者重装软件等等。例如本中文分析出的360antiarp.sys文件,在网上一查,发现它是360安全卫士的ARP 防火墙驱动程序。由于该文件与本机的某些驱动程序冲突会引起电脑蓝屏。把360安全卫士的ARP 防火墙卸载,蓝屏问题就解决了。

  编后:本文只能帮你找出导致蓝屏故障的元凶,具体的解决办法还得上网查找。导致故障的原因可能是.sys文件也有可能是.dll文件,如果故障是由查不到的.sys文件或者.dll文件引起的就要当心了,这些文件有可能是病毒,最好在安全模式下全盘杀毒试试看!
2#
 楼主| 发表于 2009-9-10 17:56 | 只看该作者
转载的..

先声明下,虽然用windbg诊断蓝屏之前网络上已经有人发过教程了,但就我而言,学会使用windbg来诊断蓝屏也算是自己的原创吧。以前看一个微软专家的视频(微软专家张银奎老师的《如何诊断和调试蓝屏错误》),里面提到可以用windbg来调试dump文件,当时我就想能不能只关注是什么文件导致的系统崩溃,然后对症下药。后来通过一系列的实验,自己摸索出了用windbg诊断蓝屏的方法,成功解决了包括KIS7.0插件、QQ插件、迅雷插件导致的蓝屏。废话就不多说了,本文没什么高深的技术,只是一些简单的操作,但应该可以让身陷蓝屏困扰中的朋友带来些变化,起码能让你知道是谁在捣乱!
        直观地说,蓝屏是系统崩溃。操作系统在遇到致命错误导致崩溃时,并不是直接挂掉,而是会记录下当时内存中的数据,将其存储成为dump文件,并用一串蓝屏代码向用户做出提示。
       好了,大家跟我一起设置吧。
       第一步,打开电脑的dump文件存储功能在“我的电脑”上右键——属性——高级







       选好后点确定,下次再出现蓝屏时,系统就会存储下dump文件,一般存放位置在系统盘的minidump文件夹下。(建议在该文件夹上点右键——属性——发送到——桌面快捷方式,以后就能在桌面上找到该文件夹了)
第二步,下载安装windbg
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a
这个过程就不说了,随便选一个下载,安装时,一路“下一步”就行了。
中间插播个广告:windows蓝屏代码释义 ,出现蓝屏后,记下代码就可以查询是什么问题导致的蓝屏了。 上面那篇文章里查不到的,试试这里

第三步,使用windbg诊断蓝屏错误
     上面两步设好后,就想办法开始“制造”蓝屏吧,平时怎么用会出现蓝屏就拼命用直到出现蓝屏,嘿嘿。
     蓝屏后重启,在minidump文件夹下会出现一个以日期为文件名的东东,那就是我们要的了。接下来打开windbg,点屏幕左下的 “开始”,如下图:



软件启动点File——Open Crash Dump,如图:


然后找到你的minidump文件夹(dump文件找不到的,有可能是文件或者文件夹设置了隐藏,在文件夹选项把它调出来就可以了;也有可能要经过几次蓝屏才会有这个文件),dump文件一般是"时间.dmp"如图:

打开后就会自动分析了。分析完后,看最下面,找到3.probably caused by这一行,如图:


看,出来了吧那个myfault.sys文件就是罪魁祸首。
导入dump文件分析完毕后,不要关闭,在后面输入!analyze -v,这个命令可以查看dump文件的详细情况,如图:


对普通用户有用的还有下面一些信息:


第一行 DEFAULT_BUCKET_ID: 错误类型,这个懂点编程和操作系统知识的朋友用得上点
第三行 PROCESS_NAME: XXX.exe 这个是导致错误的进程,查出是什么文件导致的蓝屏后,再看这里就知道是谁调用了错误文件,比如你查出123.sys导致蓝屏,但你查不到123.sys是哪个程序调用的,就可以用这个方法来看看,比如查出了是456.exe,你就可以在机子上或者网上搜索相关信息了。



好了,到这里相信大家已经学会怎么找到导致系统蓝屏的文件了,接下来怎么办呢?上网查资料,把导致蓝屏的那个文件名在网上搜索,基本就知道是什么文件了,一般网上也有相关的解决办法,看看要删除些什么插件、打什么补丁或者重装软件等等。
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2009-9-10 17:59 | 只看该作者
补充:你村转储文件的盘必须有虚拟内存
回复 支持 反对

使用道具 举报

4#
发表于 2009-9-10 19:26 | 只看该作者
学习了.......
回复 支持 反对

使用道具 举报

5#
发表于 2009-9-10 19:37 | 只看该作者
不知道有些软件兼容问题如何检测
我使用mediacoder转码文件 老出现X264.EXE错误 然后整个系统就崩溃掉了 但是没蓝屏 没死机
就是所有程序无法用了 网络也中止 只有重启系统
回复 支持 反对

使用道具 举报

6#
发表于 2009-9-10 20:10 | 只看该作者
支持这样的帖子。
回复 支持 反对

使用道具 举报

7#
发表于 2009-9-11 09:47 | 只看该作者
不错。支持技术型贴。
回复 支持 反对

使用道具 举报

langgs 该用户已被删除
8#
发表于 2009-9-11 10:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-8-16 12:34

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表