如何在蓝屏​​错误后分析 Windows 上的内存转储?

bub*_*umm 15 memory windows-7 black-screen-of-death dump

我的运行 Windows 7 x64 的计算机时常崩溃。您能否建议如何分析内存转储或指出可能的原因和进一步的故障排除步骤?

计算机已从错误检查中重新启动。错误检查是:0x0000003b (0x00000000c0000005, 0xfffff96000015de8, 0xfffff88007db9fb0, 0x0000000000000000)。转储保存在:C:\Windows\MEMORY.DMP。报告编号:080210-24819-01。

WinDbg 运行结果的引用

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx 处的指令引用了 0x%08lx 处的内存。内存不能为 %s。

...

DEFAULT_BUCKET_ID:VISTA_DRIVER_FAULT

BUGCHECK_STR:0x3B

PROCESS_NAME:explorer.exe

...

MODULE_NAME:win32k

IMAGE_NAME:win32k.sys

有什么方法可以了解哪个特定驱动程序有问题?

Lef*_*ium 19

我会使用微软的调试工具:WinDbg。它可以像您一样读取并自动分析内存转储。(WinDbg的命令被恰当地命名为:!analyze

该工具功能强大,但相当复杂。这是详细的HOW TO 指南

同一个论坛建议使用BlueScreenView。我没试过;它使用起来可能更简单,但没有提供详细信息。


更新:

有什么方法可以了解哪个特定驱动程序有问题?

之后!analyze运行kkd。这将显示崩溃前的堆栈跟踪。堆栈跟踪是崩溃前的函数调用列表,最近的一个在顶部。您至少应该能够了解所涉及的模块 (DLL) 的文件名。

我建议!analyze与熟悉 WinDbg 并且有兴趣提供帮助的人分享和/或内存转储的完整结果。之前链接的MajorGeeks 论坛看起来是个不错的地方。