使用 WinDbg 解析蓝屏错误日志
后知后觉 暂无评论

Windows 系统的用户应该都遇到过蓝屏的问题,大部分用户可能并不会关心其原因,大致上就是骂一下,垃圾微软,垃圾系统。一般来说一旦出现蓝屏问题,若不对其原因进行核查,大概率还会继续出现同样的问题。

实际上蓝屏的原因有很多,最常见的就是软件内部错误、驱动问题,其他情况遇到的蓝屏问题较少出现。整体上说 Windows 的兼容性已经做得很不错的,毕竟它兼容着世界上种类最多的硬件,甚至还有很多年代久远的硬件及设备。

WinDbg 是什么?它能做什么?

WinDbg 是 Windows 平台下,强大的用户态和内核态调试工具。它能够通过 .dmp 文件轻松定位到问题根源,可以用于分析蓝屏、软件崩溃的原因,是开发 Windows 软件和日常使用中分析蓝屏原因的一个有力工具,使用它可以有效提高定位问题,解决软件开发中的 bug 的效率和准确率。

如何使用 WinDbg 呢?

收集蓝屏报错信息

做过开发的都知道,没有日志是没有办法进行方便调试的,因此要想分析蓝屏原因,必须要先有日志文件,Windows 系统实际上默认是开启蓝屏报错日志的。

但是部分精简过的系统,或者部分所谓的优化软件会将此功能禁用,因此需要确认此功能是否打开,配置完毕后即可在下次出现蓝屏时自动记录日志,方便溯源。

首先在桌面「此电脑」右键,若桌面没有「此电脑」可打开「文件资源管理器」,在左侧快速菜单中在「此电脑」选项上右键,和前一种方式的结果一致,然后在左侧的控制面板主页中选择「高级系统设置」

高级系统设置

在「启动和故障恢复」子项中点击「设置」

启动和故障恢复设置

查看下图中所配置的路径,此路径为蓝屏日志的存放地址,推荐使用图中的默认路径

启动和故障恢复设置

默认 %SystemRoot% 路径对应系统盘的路径为(假定系统磁盘为 C:\)

C:\Windows\minidump

配置符号表

符号表是 WinDbg 中关键的“数据库”,用于解析 .dmp 文件。

首先下载安装 WinDbg ,请根据系统版本进行选择,若 64位系统请选择 AMD64 版本。

运行 WinDbg ,然后打开 [File] - [Symbol File Path ...] 或者快捷键 [Ctrl+S] 打开配置页面,配置符号表的存储目录。

小贴士:建议选择一个固定的位置存放符号表,符号表文件并不大,博主本次下载的符号表仅占用 27.5Mb ,因此可以放在 C:\ 盘根目录中。

符号表配置前

在其中填入以下内容

SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
实际上含义很简单,将符号表保存至 C:\Symbols 中,所需的文件从微软官网下载。

符号表配置后

分析蓝屏问题报告

保存后即可开始分析蓝屏日志,在 [File] - [Open Crash Dump...] 或者快捷键 [Ctrl+D] 打开蓝屏日志文件

文件菜单一览

小贴士:这里有一点需要注意,系统的标准存储路径是无法使用 WinDbg 打开的,因此需要在上一步中将 .dmp 文件复制到其他目录:比如「我的文档」中。

打开日志文件

打开的速度可能会较慢,因为会从微软官网下载符号表进行分析,等出现上述界面时即可。此时点击屏幕左下方的蓝色字符 !analyze -v 即可查看详细报错信息。

在详细报告中会显示蓝屏的错误代码和引起蓝屏的相关进程,一般来说驱动更新或者系统更新最可能导致蓝屏的发生。


附录

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。