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


15

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

计算机已从错误检查中重新启动。错误检查为:0x0000003b(0x00000000c0000005,0xfffff96000015de8,0xfffff88007db9fb0,0x0000000000000000)。转储保存在:C:\ Windows \ MEMORY.DMP。报告ID: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

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


Answers:


19

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

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

同一论坛建议使用BlueScreenView。我没有尝试过;它可能更易于使用,但未提供详细信息。


更新:

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

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

我建议!analyze与WinDbg熟练并有帮助的人共享完整的结果和/或内存转储。先前链接的MajorGeeks论坛看起来像是个好地方。


谢谢!您有下一步的想法吗?我添加了WinDbg运行的结果
bublegumm,2010年

1
MajorGeeks论坛线程很棒,它一步一步地介绍了如何读取memory.dmp文件。
russds 2015年

如果没有一些深入的知识来尝试使!analyze -v输出有意义(BlueScreenView大多提供了这一点),那几乎是没有意义的。建议在StackOverflow上看待调用堆栈是明智的,但是在这里有点傻。此外,我已经完成了验尸Windows驱动程序调试的工作,到目前为止,许多情况还不像您所说的那样明确。
0xC0000022L


-1

这可能导致它http://support.microsoft.com/kb/980932 (使用页面顶部的“查看并请求下载修补程序”来请求此修补程序,如果它不是1394火线,请不要应用此修补程序问题)

否则,可能是由视频驱动程序引起的,这似乎在W7中很常见,但其他硬件也可能导致此问题,而且内存模块损坏的可能性也很高。

错误检查0x3B:SYSTEM_SERVICE_EXCEPTION

http://msdn.microsoft.com/zh-CN/library/ff558949(v=VS.85).aspx

SYSTEM_SERVICE_EXCEPTION错误检查的值为0x0000003B。这表明执行从非特权代码到特权代码的例程时发生了异常。参量

蓝屏上显示以下参数。参数说明1导致错误检查的异常2导致错误检查的异常的异常记录的地址3导致错误检查的异常的上下文记录的地址40

原因

此错误与页面缓冲池使用过多有关,可能是由于用户模式图形驱动程序越过错误数据并将其传递给内核代码而导致的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.