我写了一些程序,它使用当前PC的硬件(通过Windows读取)的信息(大程序,所以我不能在这里发布代码),有时我的Windows 7崩溃,最糟糕的是我不知道为什么,调试并没有帮助我,有没有办法从Windows 7接收某种日志,为什么它崩溃了?提前感谢您的帮助
答案 0 :(得分:2)
正确(但有些难看)的答案:
转到计算机 - >属性,转到“高级系统设置”。 在启动和恢复下,确保将其设置为“内核内存转储”并记下转储文件的位置(在完全默认安装中,您正在查看C:\ windows \ memory.dmp)
您最理想的是安装Windows调试工具(现在在Windows SDK中)以及在符号设置中设置MS符号存储(http://msdn.microsoft.com/en-us/library/ff552208(v = vs.85)的.aspx)
完成所有操作后,等待崩溃并检查调试器中的memory.dmp。通常您不会看到确切的崩溃,因为您的驱动程序供应商不包含符号,但您通常也会看到崩溃中涉及的DLL名称,这应该指向您正在处理的驱动程序。
如果您没有在堆栈中看到特定的驱动程序DLL名称,它通常会向我指示需要解决的硬件故障(如内存或开销)。
MS在technet上有一篇很好的文章描述了我上面提到的内容(但是一步一步,更详细)http://blogs.technet.com/b/askcore/archive/2008/11/01/how-to-debug-kernel-mode-blue-screen-crashes-for-beginners.aspx
你也可以像其他人注意到的那样查看事件日志,但是除了实际的内核消息之外,通常旁边的信息是无用的(有时候模糊地指出问题是驱动程序还是别的)