如何分析BSOD和错误信息,它会提供给我?(How do I analyse a BSOD and

2019-07-03 13:30发布

好消息是,我没有写很多应用导致蓝屏,但我只是想知道的这个屏幕上的信息有用性的。 是否包含任何有用的信息,可以帮助我找到我的代码中的错误? 如果是这样,我需要什么,到底是什么?

然后,系统重新启动,并可能已经某处写了一些错误日志或其他信息系统。 它在哪里,是什么遏制,如何用它来改善我的代码?

我没有过去经常得到一个BSOD时,我用PBX系统中的文档,它的量是司机只是没有互动,所以我不得不做一些尝试和错误编码。 幸运的是,我现在为不同的公司工作,并没有看到任何BSOD的是我的代码的结果。

Answer 1:

如果你想有一个很简单的方法来找出导致操作系统崩溃,将工作〜90%的时间 - 假设你有一个崩溃转储 - 然后尝试以下方法:

  • 下载WinDbg,从而使部分Windows调试工具包。 请注意,您只需要安装的组件调用Windows调试工具。
  • Run的WinDbg
  • 从文件菜单中选择“打开崩溃转储”
  • 当转储文件已加载类型analyze -v ,然后按回车
  • WinDbg中会做碰撞的自动分析,并会在碰撞时提供了大量的系统状态信息量。 它通常将能够告诉你哪些模块是有过错的,什么类型的错误导致崩溃。 你也应该得到一个堆栈跟踪,可能会或可能不会对你有帮助。
  • 另一个有用的命令是kb打印出的栈跟踪。 在该列表中,找到行包含.sys 。 这通常是导致崩溃的驱动程序。

请注意,您必须配置的符号 ,如果你想堆栈跟踪给你函数名在WinDbg中。 去做这个:

  • 创建一个文件夹,如C:\符号
  • 在WinDbg中,打开文件 - >符号文件路径
  • 地址: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols

这将从微软的服务器缓存的符号文件。

如果自动分析是不够的,然后有一个品种,提供的WinDbg,使您能够制定出到底是什么在崩溃时发生的命令。 帮助文件是在这种情况下开始的好地方。



Answer 2:

一般来说,你不能从你的应用程序代码中导致操作系统崩溃或错误检查。 也就是说,如果你正在寻找一般提示之类的东西,我建议NTDebugging博客 。 大部分的东西是在我头上的方式。

当操作系统崩溃是会写一个内核转储文件,根据当前的标志等等,你会得到或多或少的信息,会发生什么。 您可以加载在WinDbg中转储文件或其他一些调试器。 WinDBG的具有有用!analyze命令,该命令将检查转储文件,并给您提示在桶中的崩溃掉进以及可能的罪犯。 还要检查错误检查的一般原因WinDbg的文档,并且你可以做些什么来解决这个问题。



文章来源: How do I analyse a BSOD and the error information it will provide me?
标签: bsod