如何使用 WinDbg 分析蓝屏转储文件
Summary: 了解如何在蓝屏错误 (BSOD) 后使用 WinDbg 读取 Windows 小型转储文件。有关分析崩溃转储、识别故障驱动程序以及解决运行 Windows 的戴尔计算机上的蓝屏错误的分步说明。
Instructions
概览
当 Windows 遇到严重问题并关闭以保护您的计算机时,会发生蓝屏错误(也称为蓝屏死机或 BSOD)。发生这种情况时,Windows 会创建一个名为 小型转储 的小文件,用于记录崩溃时发生的情况。
本文指导你如何使用 Windows 调试器 (WinDbg)(Microsoft 的免费工具)打开和读取这些小型转储文件。更重要的是,它可以帮助您了解结果的含义以及要采取哪些步骤来解决问题。
您将学到什么:
- 如何设置计算机以保存小型转储文件。
- 如何安装和使用 WinDbg 分析崩溃转储文件。
- 如何阅读分析结果并确定原因。
- 如何使用这些结果对蓝屏错误进行故障处理和解决。
- 如何使用驱动程序验证程序查找有问题的驱动程序。

什么是小型转储文件?
发生蓝屏错误时,Windows 会保存一个小型内存转储文件(也称为小型转储),文件扩展名为 .dmp。此文件捕获崩溃时计算机状态的快照。尽管小型转储很小(通常为 256 KB),但它包含重要信息,包括:
- 停止代码 — 标识崩溃类型的特定错误代码(例如,DRIVER_IRQL_NOT_LESS_OR_EQUAL)。
- Parameters — 与停止代码关联的其他值。
- 已加载的驱动程序 — 发生崩溃时正在运行的所有驱动程序的列表。
- 故障模块 — 导致崩溃的特定文件(驱动程序、系统文件或应用程序)。
- 内核模式调用堆栈 — 显示导致崩溃的事件序列的技术记录。
- 处理器和线程上下文 — 有关当时处于活动状态的处理器和进程的详细信息。
此信息有助于缩小范围,确定崩溃是由驱动程序、Windows 系统文件、硬件故障还是软件冲突引起的。
什么原因导致蓝屏错误?
蓝屏错误可能有多种原因。最常见的包括:
|
类别 |
常见原因 |
|---|---|
|
驱动程序问题 |
过时、损坏或不兼容的驱动程序(大约 70-80% 的 BSOD 与驱动程序相关)。 |
|
软件冲突 |
不兼容的程序、最近的 Windows 更新或损坏的系统文件。 |
|
系统文件损坏 |
由于未正常关机、恶意软件或磁盘错误导致的损坏的 Windows 系统文件。 |
|
超频锁定 |
CPU、GPU 或 RAM 超频设置不稳定。 |
|
硬件问题 |
RAM 故障、过热、硬盘错误或硬件组件故障。 |
准备工作:验证是否正在保存小型转储文件
在分析崩溃转储之前,必须将计算机设置为创建和保存小型转储文件。按照以下步骤验证此设置:
- 选择 开始,键入 SystemPropertiesAdvanced,然后按 Enter 键。
- 在 系统属性 窗口的 启动和恢复 部分下,选择 设置。
- 在 写入调试信息下,验证是否选择了 小型内存转储 (256 KB) 或 自动内存转储 。
- 验证 小型转储目录 是否设置为 %SystemRoot%\Minidump。
- 选择 确定,然后再次选择 确定 以关闭系统属性。
步骤 1:安装 WinDbg
WinDbg (Windows 调试器) 是 Microsoft 提供的一款免费工具,可用于打开和分析小型转储文件。请按照以下步骤下载并安装它:
- 选择 开始 并打开 Microsoft Store。
- 在搜索栏中,键入 WinDbg ,然后按 Enter 键。
- 从搜索结果中选择 WinDbg (以前称为 WinDbg 预览),然后选择 获取 或 安装。
- 等待安装完成。

步骤 2:设置符号路径
符号是帮助 WinDbg 将原始崩溃数据转换为可读信息(如函数名称和驱动程序名称)的文件。如果没有符号,分析结果可能不完整或难以解释。请按照以下步骤配置符号路径:
- 选择开始,键入 WinDbg,然后选择 WinDbg以打开应用程序。
- 选择 文件,然后选择 设置。
- 选择 调试设置。
- 在 默认符号路径 字段中,完全按照所示键入以下路径:srv*C:\Symbols*https://msdl.microsoft.com/download/symbols
- 选择OK。
此路径表示什么?
- srv* 告诉 WinDbg 从服务器下载符号。
- C:\Symbols 是计算机上的本地文件夹,下载的符号保存(缓存)在其中,以便将来更快使用。WinDbg 会自动创建此文件夹。
- URL 指向 Microsoft 的公共符号服务器。

步骤 3:打开并分析转储文件
安装 WinDbg 并配置符号路径后,按照以下步骤分析小型转储文件:
- 在 WinDbg 中,选择 文件,然后选择 打开转储文件。
- 浏览至保存小型转储文件的文件夹。默认位置为:
- Windows 崩溃转储: C:\Windows\Minidump\
- 应用程序崩溃转储: C:\Users\YourUsername\AppData\Local\CrashDumps\
- 选择要分析的 .dmp 文件,然后选择 打开。
提示: 如果您有多个转储文件,请先选择最近的一个。文件名通常包括崩溃日期(例如,010125-12345-01.dmp)。
- 等待 WinDbg 加载转储文件。您将在命令窗口中看到文本滚动。
- 在底部的命令窗口中,键入以下命令,然后按 Enter 键:
!analyze -v - 等待分析完成。WinDbg 下载必要的符号并处理数据时,这可能需要几分钟时间。

第 4 步:阅读并理解分析结果
!analyze -v 命令完成后,WinDbg 会显示详细报告。以下是要查找的最重要字段及其含义:
分析报告中的关键字段
|
字段 |
它告诉你什么 |
示例 |
|---|---|---|
|
错误检查 (或 停止代码) |
崩溃的特定错误代码。 |
0x000000D1 (DRIVER_IRQL_NOT_LESS_OR_EQUAL) |
|
SYMBOL_NAME |
发生崩溃时正在运行的特定函数或例程。 |
NVLDDMKM+1A2B3C |
|
MODULE_NAME |
导致崩溃或涉及崩溃的驱动程序或系统模块的名称。 |
NVLDDMKM |
|
IMAGE_NAME |
模块的文件名。 |
nvlddmkm.sys |
|
FAILURE_BUCKET_ID |
将类似崩溃组合在一起的唯一标识符。 |
0xD1_nvlddmkm + 1a2b3c |
|
PROCESS_NAME |
崩溃发生时处于活动状态的进程(程序)。 |
chrome.exe |
|
DEFAULT_BUCKET_ID |
崩溃类型的常规类别。 |
DRIVER_FAULT |
如何解读结果
- 如果MODULE_NAME或IMAGE_NAME显示.sys文件 — 崩溃可能是由驱动程序引起的。文件名有助于识别涉及的硬件组件或软件。
- 如果模块已ntoskrnl.exe — 这是 Windows 内核。这并不一定意味着 Windows 本身就是问题所在。它通常表示另一个驱动程序损坏了内存,并且内核检测到问题。查看完整的呼叫堆栈以获取更多线索。
- 如果模块win32kfull.sys或win32kbase.sys — 这些是与 Windows 显卡相关的系统文件。问题可能与显示驱动程序或图形应用程序相关。
常见驱动程序文件名及其关联组件
|
驱动程序文件名 |
关联组件 |
|---|---|
|
nvlddmkm.sys |
NVIDIA 显卡驱动程序 |
|
atikmdag.sys或atikmpag.sys |
AMD/ATI 显卡驱动程序 |
|
igdkmd64.sys |
英特尔显卡驱动程序 |
|
Netwtw10.sys 或 Netwtw08.sys |
英特尔 Wi-Fi 驱动程序 |
|
USBXHCI.SYS |
USB 3.0 主机控制器驱动程序 |
|
storport.sys或stornvme.sys |
存储驱动程序 |
|
tcpip.sys |
网络 (TCP/IP) 驱动程序 |
|
dxgkrnl.sys |
DirectX 显卡内核 |
|
ntfs.sys |
NTFS 文件系统驱动程序 |
|
fltMgr.sys |
文件系统筛选器管理器 |
|
Classpnp.sys |
SCSI 类驱动程序(通常与存储相关) |
提示: 如果您不确定驱动程序文件的所属,请联机搜索文件名以查找更多信息。

步骤 5:故障处理并解决蓝屏错误
通过转储文件分析确定出现故障的驱动程序或模块后,请按照以下步骤解决问题。
如果崩溃是由驱动程序(.sys 文件引起的)
- 更新驱动程序 — 转至 戴尔驱动程序和下载 ,并下载适用于您的特定戴尔计算机型号的最新驱动程序。如果驱动程序适用于第三方组件(例如打印机、网络摄像头等),请访问制造商的网站以获取最新版本。
- 回滚驱动程序 — 如果在最近的驱动程序更新后出现问题:
- 选择 开始,键入 设备管理器,然后按 Enter 键。
- 展开设备的类别(例如, 显示适配器)。
- 右键单击该设备,然后选择 属性。
- 选择 驱动程序 选项卡,然后选择回 滚驱动程序 (如果可用)。
- 重新安装驱动程序 — 在设备管理器中卸载驱动程序,重新启动计算机,然后全新安装副本。
如果崩溃指向 ntoskrnl.exe 或 Windows 系统文件
- 运行系统文件检查器 (SFC):
- 选择 开始,键入 CMD。
- 右键单击 命令提示符,然后选择 以管理员身份运行。
- 键入以下命令,然后按 Enter 键:
sfc /scannow - 等待扫描完成,然后按照显示的任何说明进行操作。
- 运行 DISM 工具 (如果 SFC 发现无法修复的问题):
- 在同一管理员命令提示符处,键入以下命令,然后按 Enter 键:
DISM /Online /Cleanup-Image /RestoreHealth - 等待该过程完成,然后运行
sfc /scannow再次。
- 在同一管理员命令提示符处,键入以下命令,然后按 Enter 键:
- 检查 Windows 更新:
- 选择 开始 > 设置 > Windows 更新。
- 选择 检查更新 并安装任何可用更新。
如果您怀疑是硬件问题
蓝屏错误也可能是由硬件问题引起的,例如内存 (RAM) 故障、处理器过热或硬盘出现故障。请尝试以下步骤:
- 运行戴尔内置诊断程序 — 重新启动计算机,在出现戴尔徽标时按 F12 键。从菜单中选择 Diagnostics 并运行完整的硬件测试。
- 运行 Windows 内存诊断程序:
- 选择 开始,键入 Windows 内存诊断,然后按 Enter 键。
- 选择 立即重新启动并检查问题。
- 您的计算机将重新启动并测试 RAM。Windows 重新启动后会显示结果。
- 检查温度 — 过热会导致蓝屏错误。确保通风口和风扇清洁无阻。使用戴尔的内置散热管理或第三方工具检查温度。
- 检查磁盘运行状况:
- 打开管理员命令提示符。
- 键入以下命令,然后按 Enter 键:
chkdsk C: /f /r - 如果出现提示,请键入 Y 以安排下次重新启动的扫描,然后重新启动计算机。
如果崩溃是由超频引起的
如果您已对 CPU、GPU 或 RAM 进行超频,请在 BIOS/UEFI 中将所有超频设置重置为其默认值。超频可能会导致不稳定,从而导致蓝屏错误。
常见蓝屏停止代码及其含义
以下是一些最常遇到的停止代码及其典型原因和建议措施:
|
停止代码 |
名称 |
常见原因 |
建议的操作 |
|---|---|---|---|
|
0x0000000A |
IRQL_NOT_LESS_OR_EQUAL |
驱动程序尝试访问无效的内存地址。 |
更新或回滚最近更改的驱动程序。 |
|
0x0000001E |
KMODE_EXCEPTION_NOT_HANDLED |
驱动程序或系统进程遇到未处理的错误。 |
在转储分析中识别故障模块,并更新或重新安装关联的驱动程序。 |
|
0x00000050 |
PAGE_FAULT_IN_NONPAGED_AREA |
驱动程序或服务引用的内存无效,或 RAM 可能出现故障。 |
使用 Windows 内存诊断程序测试 RAM。更新驱动程序。 |
|
0x0000007E |
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED |
系统线程生成了错误处理程序未能捕获的错误。 |
更新故障模块中显示的驱动程序。运行 SFC。 |
|
0x0000009F |
DRIVER_POWER_STATE_FAILURE |
驱动程序处于不一致或无效的电源状态。 |
更新芯片组、显示屏和网络驱动程序。检查电源设置。 |
|
0x000000D1 |
DRIVER_IRQL_NOT_LESS_OR_EQUAL |
驱动程序以错误的中断请求级别访问内存。 |
更新或重新安装分析中确定的驱动程序。 |
|
0x000000EF |
CRITICAL_PROCESS_DIED |
关键系统进程意外停止。 |
运行 SFC 和 DISM。检查恶意软件。考虑系统还原。 |
|
0x00000133 |
DPC_WATCHDOG_VIOLATION |
长时间运行的过程导致超时,通常与存储或显示驱动程序有关。 |
更新存储(SSD/硬盘)和显示屏驱动程序。更新固件。 |
|
0x0000003B |
SYSTEM_SERVICE_EXCEPTION |
系统服务例程期间发生异常。 |
运行 SFC。更新最近安装的驱动程序。检查 Windows 更新。 |
|
0xC000021A |
STATUS_SYSTEM_PROCESS_TERMINATED |
关键 Windows 进程(如 Winlogon 或 CSRSS)失败。 |
启动至安全模式。运行 SFC 和 DISM。考虑系统还原。 |
有关停止代码的完整列表,请参阅 Microsoft 的 Bug 检查代码参考 (英文版)。
可选:使用驱动程序验证程序查找有问题的驱动程序
如果小型转储分析无法清楚地识别问题驱动程序,或者蓝屏错误不断发生,则可以使用 驱动程序验证程序。此内置 Windows 工具可实时监控驱动程序,并在检测到驱动程序行为不当时强制显示带有详细信息的蓝屏。
重要提示: 驱动程序验证程序可能会故意导致其他蓝屏错误。这是设计使然,它会强调驾驶员发现问题。仅在您主动进行故障处理时才使用此选项,并在完成后始终禁用它。
如何启用驱动程序验证程序
- 选择 开始,键入 CMD。
- 右键单击 命令提示符,然后选择 以管理员身份运行。
- 键入以下命令,然后按 Enter 键:
verifier - 在驱动程序验证程序管理器中,选择 创建标准设置,然后选择 下一步。
- 选择 自动选择未签名的驱动程序或 从 列表中选择驱动程序名称,然后选择 下一步。
提示: 如果您怀疑特定驱动程序,请选择 从列表中选择驱动程序名称 ,然后仅选择该驱动程序。较少的驱动程序可使验证过程更高效,并减少发生不相关崩溃的几率。
- 选择 完成并 重新启动计算机。
- 照常使用计算机。如果检测到故障驱动程序,Windows 将生成带有详细转储文件的蓝屏。使用 WinDbg 分析此新的转储文件(请参阅上面的 步骤 3 和 4 )。
如何禁用驱动程序验证程序
完成故障处理后,请始终关闭驱动程序验证程序:
- 打开管理员命令提示符。
- 键入以下命令,然后按 Enter 键:
verifier /reset - 重新启动计算机。
如果驱动程序验证程序导致启动循环该怎么办
如果您的计算机在启用驱动程序验证程序后不断重新启动并显示蓝屏错误,请执行以下操作:
- 重新启动计算机,按住 Shift 键,同时从登录屏幕中选择 “重新启动 ”以访问 “高级启动选项”。
- 选择疑难解答>高级选项 > 命令提示符。
- 键入以下命令,然后按 Enter 键:
verifier /bootmode resetonbootfail。 - 然后立即键入以下命令,然后按 Enter 键:
verifier /reset - 类型
exit,按 Enter 键,然后选择 继续以 重新启动。
常见问题 (FAQ)
问:Windows 中的小型转储文件存储在哪里?
答:默认情况下,Windows 将小型转储文件保存到 C:\Windows\Minidump\。每个文件都以其创建日期命名(例如,010125-12345-01.dmp)。应用程序崩溃转储文件存储在 C:\Users\YourUsername\AppData\Local\CrashDumps\中。
问:!analyze -v 在 WinDbg 中有什么作用?
答:!analyze -v 命令告诉 WinDbg 对崩溃转储文件执行详细(详细)分析。它会自动识别停止代码、故障驱动程序或模块以及导致崩溃的调用堆栈。这是分析蓝屏转储文件时要运行的最重要的命令。
问:为什么我的分析显示ntoskrnl.exe是原因?
答:ntoskrnl.exe是 Windows 内核,是 操作系统 的核心。当它显示为故障模块时,通常意味着另一个驱动程序损坏了内存,并且内核检测到问题。查看完整的调用堆栈和其他字段(如FAILURE_BUCKET_ID),了解有关真正原因的其他线索。
问:是否可以在没有 WinDbg 的情况下分析转储文件?
答:是是的,有替代工具可用。但是,它们提供的详细信息可能不如 WinDbg。
问:如何修复驱动程序导致的蓝屏错误?
答:首先使用 WinDbg 或其他分析工具确定负责的驱动程序。然后,从制造商的网站或 戴尔驱动程序和下载将驱动程序更新到最新版本。如果在驱动程序更新后开始出现问题,请尝试使用设备管理器回滚到以前的版本。
问:为什么蓝屏后没有小型转储文件?
答:如果未创建小型转储文件,则您的系统可能未配置为保存它们。转至系统属性 > >高级启动和恢复 > 设置,并验证是否已选择小型内存转储或自动内存转储。此外,请确保系统驱动器上有足够的磁盘空间。
问:Windows 保留多少个小型转储文件?
答:Windows 不会自动删除旧的小型转储文件,但文件夹通常存储最新的文件。随着时间的推移,这些文件会累积。如果不再需要旧的小型转储文件进行故障处理,您可以安全地删除它们。
需要更多帮助?
Dell 资源
Microsoft 资源
- Microsoft 错误检查代码参考 (英文版)— 蓝屏停止代码和描述的完整列表。
- Microsoft 停止错误的高级故障处理 (英文版)— Microsoft 的高级蓝屏故障处理指南。
- 使用 WinDbg 分析内核模式转储文件 (英文版)— Microsoft 关于转储文件分析的文档。
- Microsoft 驱动程序验证程序 (英文版)— 有关使用驱动程序验证器的详细文档。
- Microsoft 进程资源管理器 (英文)— 用于识别正在运行的进程或文件所属内容的工具。