WinDbg蓝屏分析入门 | 您所在的位置:网站首页 › win10蓝屏怎么看日志 › WinDbg蓝屏分析入门 |
一、WinDbg介绍
WinDbg,英文全称为Windows Debugger,Windows调试程序。 WinDbg是Windows平台下面的一款调试工具,通过dmp文件对蓝屏、程序崩溃原因进行分析,定位问题根源。官方描述WinDbg功能为以下三点: 调试内核模式和用户模式代码分析故障转储在代码执行时检查 CPU 寄存器。微软官方文档学习资料:安装 WinDbg - Windows drivers | Microsoft Learn WinDbg下载地址:Windows SDK - Windows 应用开发 | Microsoft Developer 二、符号表设置符号表是WinDbg的关键数据库,没有符号表,WinDbg无法分析出更多的问题的原因,符号表设置方法如下: 首先,Ctrl+S弹出符号表设置窗口然后,输入:SRV*C:\Symbols*Symbol information,点击OK1、打开dmp文件:Ctrl+D 2、关闭上一个dmp分析记录:Shift+F5 四、蓝屏信息分析 1、打开蓝屏dmp文件打开蓝屏dmp文件后,显示参数System Uptime表示系统运行时间。从该参数可以得知蓝屏出现的时间,从而进行蓝屏定位,例如小于1分钟为开机蓝屏,大于1分钟为上机或者玩的过程中出现问题。如下图,在系统运行后的47分钟3秒167毫秒出现了蓝屏。 有时,在打开蓝屏dmp文件之后,会显示一个参数:Probaly caused by,表示可能导致蓝屏的驱动文件。如果没有这个参数,需要使用命令!analyze -v进行进一步分析。下图为执行命令!analyze -v之后显示的一个界面: 第一个部分表示蓝屏代码,这里的蓝屏代码为ea。 第二个部分表示WinDbg给的一些分析建议。 第三个部分表示蓝屏代码ea的四个参数。 这里通过点击help--Window,或者键盘F1进入帮助页面,查看蓝屏代码对应的参考信息,如下图。 关闭debugger帮助界面,继续回到WinDbg调试,通过鼠标下滑可以查看触发蓝屏相关的应用程序以及堆栈信息,如下图: 第一个部分表示蓝屏代码以及与之相关的四个参数。 第二个部分表示触发蓝屏的进程。触发蓝屏的进程文件可能是exe文件,也可能是dat文件或者dll文件,触发蓝屏文件的类型并不固定。但是应用程序并不是导致蓝屏的真正原因,因为用户态程序不会导致蓝屏,只有内核态程序才会导致蓝屏。 第三个部分表示堆栈信息。栈信息反映了错误发生前堆栈中的函数调用情况,从下至上进行调用。如上图,nt中的KeBugCheckEx函数被dxgkrnl中的函数TdrTimedOperationBugcheckOnTimeout调用,该函数又被dxgkrnl中的TdrTimedOperationDelay函数调用,然后TdrTimedOperationDelay函数被amdkmdag函数调用。通过这里的堆栈,分析导致蓝屏的主要原因。 另外,在堆栈信息下面有一个参数是IMAGE_NAME,表示触发蓝屏的驱动程序。如下图,触发该蓝屏的相关驱动为dxgkrnl.sys。在这里,程序FMSIScan.exe的运行触发了dxgkrnl驱动程序的一个bug,发生蓝屏。判断该蓝屏现象背后是一个驱动bug之后,通过驱动dxgkrnl.sys所属平台或者所属供应商,从而推动蓝屏bug的修复。 1、CSDN《系统蓝屏日志DMP文件分析工具WinDbg及教程》 2、CSDN《WinDBG工具配置及蓝屏dump简单分析》 3、CSDN《Windows蓝屏DMP文件分析》 4、《微软官方WinDbg文档参考》 |
CopyRight 2018-2019 实验室设备网 版权所有 |