【问题标题】:Catching the dreaded Blue Screen Of Death捕捉可怕的蓝屏死机
【发布时间】:2009-09-23 11:19:44
【问题描述】:

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

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

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


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

【问题讨论】:

  • 我建议您问一个新的、措辞更好的问题:“如何调试 Windows 内核?我希望能够在 BSOD 发生时挂接它”
  • 嗯,答案似乎是:在为内核使用调试器时,您可能会这样做。谢谢文科和布赖恩。不过,如果还有其他选项,请随时添加它们,如果可行,我可以更改接受的答案。

标签: language-agnostic bsod


【解决方案1】:

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

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

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

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

【讨论】:

  • 无论如何,知道哪个驱动程序有问题仍然非常有价值。即使您可能无法实际构建新驱动程序,您也可以知道要密切关注哪个供应商,并在极端情况下,用更好的驱动程序开发人员为不同品牌更换有故障的驱动程序的硬件。
  • 我不想在它发生时修复它。我知道最好不要尝试这个。但我希望能够在系统崩溃之前再做最后一项操作。因此,我想抓住这个事件。
  • @Alex:Windows 认为 BSOD 是一个不可恢复的错误,因此如果有的话,将很难以可靠的方式进行。
  • @Brian,我意识到这一点。也许捕捉它的方法甚至取决于每个 Windows 版本。只是想知道是否有可能。如果可能的话,我的代码会有什么限制。
  • 好吧,如果调试内核可以帮助我发现可能的错误,我会试试的。 :-)
【解决方案2】:

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

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

【讨论】:

  • 我知道这一点,但是当我分析转储时,我为时已晚。我想要在崩溃期间采取行动,而不是之后。良好的链接 (+1) 但不是我正在寻找的答案。
【解决方案3】:

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

第一个是将位于 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文件

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

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

第一种方法更准确,更高效。

【讨论】:

    【解决方案4】:

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

    这里有更多信息: How to read the small memory dump files that Windows creates for debugging (support.microsoft.com)

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 2016-08-07
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多