我有一个直接避免BSoD的驱动程序,并将Windows Vista的屏幕变成黑色,几乎没有彩色圆点和条纹。我之后在系统上找到了一个内存转储,DbgView很好地向我展示了一个堆栈跟踪(声明这可能是一个乱码堆栈,而某些部分可能不正确)。遗憾的是,在代码中发现堆栈中的命令无处可见,这显然会破坏整个事物。 (我可以完成整个程序,但不能完成它的一部分。)
有人知道如何将调试消息发送到内存转储或串行端口以在外部调试器中读取它们吗? (如果调试器已连接,我的测试系统会停止,但这可能让我对远程连接内核调试的方式和原因了解不够。)
我想知道我的代码失败的地方,因为浏览代码对我来说似乎有点徒劳,我可能需要一个提示。
答案 0 :(得分:3)
MSDN关于如何设置调试会话的说明。
设置程序为:
PS:bcdedit有时无法设置调试模式。我不知道为什么。但似乎有一定的顺序,你必须告诉它调试参数。尝试不同的组合确实可以创造奇迹......
当您进入流程时,可以在WinDbg中使用命令。一些有趣的:
启用Vista下的所有DbgPrint输出:
enable_dbg_print_vista.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"DEFAULT"=dword:0000000f