# 前言

这次帮一个朋友解决蓝屏,但无法进行现场检测懒得出去,远程也看不到蓝屏代码
只能使用 windbg 来分析内存文件检测蓝屏原因

# windbg 使用

# 下载和安装

本文使用 windowsSDK 进行安装,安装地址点我
进入后选择下载应用程序:
微软官网界面
选择下载路径:
SDK位置
勾选第二项即可:
选择安装部分
安装完成后到下载路径 (下载路径 / Installers/X64 Debuggers And Tools-x64_en-us.msi) 双击安装即可

# 配置符号表

在开始菜单内找到 windbg, 打开后界面点击 file->Symbol File Path
在弹出来的对话框内填入如下内容:

srv*c:\symbols*https://msdl.microsoft.com/download/symbols

选择 OK

# 开始分析崩溃文件

首先,你需要从目标电脑的 % SystemRoot%(一般为 C:/windows) 下找到 MEMORY.DMP 文件
将其放到合适位置后,点击 File -> Open Crash Dump 选择崩溃文件
弹出来的界面应该如下 (这个崩溃文件是 win7 SP1 的文件)
image.png
然后输入 !analyze -v 对文件进行深入分析
然后看输出的内容:

*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************
PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.  This cannot be protected by try-except.
Typically the address is just plain bad or it is pointing at freed memory.
Arguments:
Arg1: fffff8817cdadbc0, memory referenced.
Arg2: 0000000000000000, value 0 = read operation, 1 = write operation.
Arg3: fffff880088da185, If non-zero, the instruction address which referenced the bad memory
	address.
Arg4: 0000000000000005, (reserved)

输出的第一行为崩溃原因,一般和 win10 的蓝屏代码是一致的

括号内的为 win7 版本,本案例就是 0x0000050

这个代码的本意为崩溃原因和代码,并不只针对于 windows

然后就可以去搜索此错误代码了,一般有对应的解决方案

本案例到最后也没查到根本原因🤣

但是,在下面还有一亿些内容,在里面有两条比较重要的

Unable to load image \SystemRoot\system32\DRIVERS\igdpmd64.sys, Win32 error 0n2
Unable to load image \SystemRoot\system32\DRIVERS\atikmpag.sys, Win32 error 0n2

这两条代表 igdpmd64.sysatikmpag.sys 驱动是概率存在问题的
后来收到了对方发来的蓝屏图片,里面的关键内容如下:

STOP: 0x00000050 
igdpmd64.sys - Address FFFFF88007AE0185 base at XXXX...

证实了是 igdpmd64.sys 导致的蓝屏,并且代码为 50
后查询得知这个是 AMD 显卡的驱动文件,结合蓝屏的使用经历 (屏幕共享功能导致), 基本可以得出是显卡驱动导致蓝屏

电脑上的显卡是 ATI radeon HD 7450M, 确实有亿点老