WinDbg蓝屏分析入门 您所在的位置:网站首页 win10蓝屏怎么看日志 WinDbg蓝屏分析入门

WinDbg蓝屏分析入门

2024-07-03 16:01| 来源: 网络整理| 查看: 265

一、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,点击OK

三、常用快捷键

       1、打开dmp文件:Ctrl+D

       2、关闭上一个dmp分析记录:Shift+F5

四、蓝屏信息分析 1、打开蓝屏dmp文件

      打开蓝屏dmp文件后,显示参数System Uptime表示系统运行时间。从该参数可以得知蓝屏出现的时间,从而进行蓝屏定位,例如小于1分钟为开机蓝屏,大于1分钟为上机或者玩的过程中出现问题。如下图,在系统运行后的47分钟3秒167毫秒出现了蓝屏。

2、使用!analyze -v进一步分析

      有时,在打开蓝屏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 实验室设备网 版权所有