4

这是一个简单的问题。有时 Windows 会停止一切并抛出 BSOD。游戏结束,请重新启动以进行另一场比赛。管他呢。烦人但不是特别严重...

我想要的很简单。我想在它发生时抓住它。为什么?只是为了一些额外的崩溃记录。系统变蓝没关系,但是当它发生时,我只想记录一些额外的信息或执行一项额外的操作。

这甚至可能吗?如果是这样,怎么做?限制是什么?


顺便说一句,当系统恢复时我不想做任何事情,我想在它发生时抓住它。这让我可以采取最后的行动。(例如,在系统关闭之前刷新文件。)

4

4 回答 4

7

BSOD 的发生是由于 Windows 内核中的错误或更常见的错误设备驱动程序(在内核模式下运行)。您对此无能为力。如果是驱动问题,你可以希望供应商解决它。

您可以将 Windows 配置为在 BSOD 上创建内存转储,这将帮助您解决问题。!analyze通过将转储加载到 WinDbg 并使用命令,您可以很好地了解故障驱动程序。

知道是哪个驱动程序导致了问题,您可以寻找新的驱动程序,但如果这不能解决问题,那么您几乎无能为力(除非您非常擅长使用十六进制编辑器)。

更新:如果你想在它发生时调试它,你需要调试内核。获取更多信息的好地方是Mark Russinovich的Windows Internals一书。另外,我相信 WinDbg 的帮助文件中有一些信息,并且设备驱动程序工具包中也一定有一些信息(但这超出了我的知识范围)。

于 2009-09-23T11:22:20.167 回答
4

数据存储在所谓的“Minidumps”中。

然后,您可以使用调试工具来探索这些转储。该过程记录在这里http://forums.majorgeeks.com/showthread.php?t=35246

于 2009-09-23T11:24:21.767 回答
2

你有两种方法可以弄清楚发生了什么:

第一个是将位于 C:\Minidump***.dmp 下的 dmp 文件上传到他们描述的微软服务:http: //answers.microsoft.com/en-us/windows/wiki/windows_10-update/blue -screen-of-death-bsod/1939df35-283f-4830-a4dd-e95ee5d8669d

或者使用他们的软件调试器 WinDbg 来读取 dmp 文件

注意:您会发现几个文件,您可以使用包含事件日期的名称来区分。

第二种方法是从蓝屏中记录错误代码,并在谷歌和微软网站上进行搜索。

第一种方法更准确、更有效。

于 2016-05-16T18:50:21.227 回答
1

Windows 可以配置为在蓝屏上创建故障转储。

以下是更多信息: 如何读取 Windows 为调试创建的小型内存转储文件 (support.microsoft.com)

于 2009-09-23T11:25:59.660 回答