我正在开发的其中一个驱动程序导致了BSOD。遗憾的是,由于未配置/资源不足,因此未创建转储文件。我试图重现这次崩溃但到目前为止没有运气。
有没有办法使用WinDbg或任何其他工具获取一些信息? 我有这个信息:
我拥有除转储本身以外的所有东西。
非常感谢您的帮助。
如上所述,不存在转储(/ minidump)。这是实际问题。
对于这次特定的崩溃,我知道我无法获得堆栈。只需获取特定代码就足够了。因为BSOD包含模块的地址,所以似乎应该有一种方法来检测它究竟是哪一行。正如我上面提到的,我确实有.sys文件,pdb和源代码。
这是从MSDN获取的具体代码:SYSTEM_SERVICE_EXCEPTION。 我怎么知道具体的那条线是什么?和/或提出的具体例外?
答案 0 :(得分:1)
你有崩溃地址,想知道源代码行吗?
启动kd或windbg,在它之前解析该地址和代码。找到函数入口点(它调整堆栈的位置),您现在可以查找符号表。从那里你再次贬低并比较来源。
抱歉,我想你需要阅读一些asm。我知道没有更好的方法。
答案 1 :(得分:0)
如果您很幸运,您将在C:\windows
中使用minidump,因此请检查它是否在那里。
如果可以在Windbg中打开它并进行分析。
您不需要配置低资源来创建转储,请参阅此链接http://support.microsoft.com/kb/254649,了解如何设置窗口以创建转储文件。如果要调试驱动程序,请创建完全转储。
回到你的问题来分析问题:
请参阅此处的错误检查参考,以了解您的BSOD错误。 http://msdn.microsoft.com/en-us/library/windows/hardware/hh406232(v=vs.85).aspx
根据您获得的BSOD,检查任何参数或其他信息以获得可能的原因。
但是你不太可能用你掌握的信息得出好的结论。你需要转储文件才能真正理解这个问题。