0

我正在开发的驱动程序之一导致了蓝屏死机。不幸的是,没有创建转储文件,因为它没有配置/资源不足。我试图重现这次崩溃,但到目前为止还没有运气。

有没有办法使用 WinDbg 或任何其他工具获取一些信息?我有这个信息:

  • 蓝屏截图
  • .sys 文件。
  • 它的 pdb
  • 源代码
  • 它坠毁的机器

除了转储本身,我什么都有。

您的帮助将不胜感激。


正如我上面所说,不存在转储(/minidump)。这是实际的问题。

对于这个特定的崩溃,我知道我将无法获得堆栈。只需获取特定的代码行就足够了。因为 BSOD 包含模块的地址,所以似乎应该有一种方法来检测它到底是哪一行。正如我上面提到的,我确实有 .sys 文件、pdb 和源代码。

这是取自 MSDN 的特定代码:SYSTEM_SERVICE_EXCEPTION。我怎么能从那里知道具体的线路是什么?和/或提出的具体例外?

4

2 回答 2

1

你有crash地址,想知道源码行吗?

启动 kd 或 windbg,解除其之前的地址和代码。找到函数入口点(它调整堆栈的位置),您现在可以查找符号表。从那里你再次解除并比较来源。

抱歉,我想您需要阅读一些 asm。我不知道更好的办法。

于 2012-07-03T03:13:12.150 回答
0

如果你很幸运,你会有 minidump C:\windows,所以检查它是否在那里。如果可用,请在 Windbg 中打开并分析。您不需要配置低资源来创建转储,请参阅此链接http://support.microsoft.com/kb/254649,了解如何设置窗口以创建转储文件。如果要调试驱动程序,请创建完整转储。

回到你的问题来分析问题:

但是,您不太可能根据您拥有的信息得出良好的结论。您将需要转储文件才能真正理解问题。

于 2012-07-02T08:52:11.743 回答