Windows蓝屏Dump文件分析
有时候电脑经常性蓝屏,我们常用的解决方法就是重装系统,但是今天我教大家一个简便的方法,通过微软自产工具WinDbg程序来分析蓝屏Dump文件,来解决电脑蓝屏问题
前言:
系统蓝屏后每次都会在 C:\Windows\Minidump 目录下生成一个dmp文件,文件名称是按时间顺序生成的,我们只需要用 WinDbg 工具对dmp文件进行准确分析后就能得出蓝屏的大概原因
1)WinDbg工具是什么?它到底能做什么呢?
WinDbg是在windows平台下,强大的用户态和内核态调试工具。它能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏、程序崩溃(IE崩溃)原因,是我们日常工作中必不可少的一个有力工具,学会使用它,将有效提升我们的问题解决效率和准确率
2)WinDbg6.12.0002.633版本程序下载地址:
蓝屏Dump分析工具WinDbg(x64).rar 链接:https://pan.baidu.com/s/1TgY7CKKZ487mFN7y_8QnRg 提取码:6t65 复制这段内容后打开百度网盘手机App,操作更方便哦
3)设置WinDbg程序符号表
符号表是WinDbg关键的“数据库”,如果没有它,WinDbg基本上就是个废物,无法分析出更多问题原因。所以使用WinDbg设置符号表,是必须要走的一步
1、运行WinDbg软件,然后按【Ctrl+S】弹出符号表设置窗
2、将符号表地址:SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols 粘贴在输入框中,点击确定即可
注:红色字体为符号表本地存储路径,建议固定路径,可避免符号表重复下载
4)打开第一个Dump文件
当你拿到一个dmp文件后,可使用【Ctrl+D】快捷键来打开一个dmp文件,或者点击WinDbg界面上的【File=>Open Crash Dump...】按钮,来打开一个dmp文件。第一次打开dmp文件时,可能会收到如下提示,出现这个提示时,勾选“Don't ask again in this WinDbg session”,然后点否即可
当你想打开第二个dmp文件时,可能因为上一个分析记录未清除,导致无法直接分析下一个dmp文件,此时你可以使用快捷键【Shift+F5】来关闭上一个dmp分析记录。
至此,简单的WinDbg使用你已经学会了!
5)进入主题;分析什么原因导致蓝屏
当你打开一个dmp文件后,可能因为太多信息,让你无所适从,不过没关系,我们只需要关注几个关键信息即可。
第一个关键信息:System Uptime(开机时间):
通过观察这个时间你就可以知道问题是在什么时候出现的,例如时间小于1分钟基本可以定位为开机蓝屏,反之大于一分钟则可证明是上机后或玩的过程中出现问题了
接下来用一个简单的例子来学习简单的dmp分析,下图中System Uptime: 0 days 1:15:48.778,意思是0天(days)1小时15分48秒778毫秒时出现蓝屏了
那么是什么导致蓝屏的呢?接下来我们就要注意第二个关键信息了!
第二个关键信息:Probaly caused by(造成蓝屏可能的原因)
这个信息是相对比较重要的一个信息,如果你运气好的话,通过这个信息基本上可以看到导致蓝屏的驱动或者程序名称了,就像下图一样,初步的分析已经有了结果,Probaly caused by 后面显示的是一个名为atikmdag.sys的驱动文件导致蓝屏,这个文件就是显卡驱动。因此蓝屏则很有可能和显卡有关。
括号中驱动文件名后面的+号代表的是偏移地址,假如多个dmp文件的驱动文件名一样,且偏移地址也一样,则问题原因极有可能是同一个,这个偏移地址与汇编有关,这里不多做介绍
其实,对于分析蓝屏dmp并不是每次运气都那么好,假如刚刚打开dmp文件未看到明确的蓝屏原因时,我们就需要借助一个命令来进一步分析dmp,这个命令就是:!analyze -v,这个命令能够自动分析绝大部分蓝屏原因。当初步分析没有结果时,可以使用该命令进一步分析故障原因,当然你也可以直接点击链接样式的!analyze -v来进行执行该命令,为了让大家更直观的看懂里面的信息,大家可以直接看图片中的注释信息
学到这里,基本上已经可以分析绝大部分dmp文件了,但是分析蓝屏dmp要比较谨慎,对信息需要重新验证一次才更加保险,验证方法很简单,在WinDbg的命令输入框内,输入!process命令,就可以验证触发蓝屏的程序到底是否正确了
运行!process命令后得到的信息:
至此,掌握以上几个简单的分析方法之后,基本上绝大多数dmp大家都可以独立分析了,当然WinDbg是个强大的工具,同时蓝屏的原因也有很多,如果想分析的足够准确,那么就只有多学多练,多去分析,因为WinDbg分析除了懂得几个命令之外,经验更加重要!
合理再给大家一些分析建议:
并不一定每个dmp文件都可以分析出有用的结论,因此分析dmp并不需要对每个dmp文件的结果过分纠结,其实蓝屏dmp分析也是观察一个规律或者规模的问题定位方法而已。例如你分析了10个dmp,有5个dmp都指向同一个蓝屏原因,另外5个dmp的信息五花八门时,那么你完全可以先处理掉5次蓝屏,同一个原因的问题,因为解决了这个问题之后,后面的问题可能就都解决了!