调试en_windows_7_checked_build_dvd_x86_398742时,我没有收到调试信息。 我甚至无法看到我自己的跟踪信息(ATLTRACE)。 相反,Windows XP Checked的作用就像一个魅力。 在Windows 7启动调试会话时出现“Bad QueryIdType:5”msg。 显然,内核调试设置正确。 请帮忙...内核跟踪Windows 7 WinDbg
回答
好的,我找到了解决方案here。它可以帮助人们:
问题:在Windows Vista上运行驱动程序时,您的DbgPrint或KdPrint消息不会显示在WinDbg(或KD)中。
原因? Vista自动将DbgPrint和朋友映射到DbgPrintEx。现在,您可能还记得,DbgPrintEx允许您通过函数调用中的组件名称和级别以及注册表或内存中的相关过滤器掩码来过滤消息,从而控制将消息发送到内核调试器的条件。
在Vista中,DbgPrint和KdPrint映射到组件“DPFLTR_DEFAULT_ID”和级别“DPFLTR_INFO_LEVEL”。当然,在Vista中,xxx_INFO_LEVEL输出默认是禁用的。因此,默认情况下,您的DbgPrint/KdPrint不会发送到内核调试器。
如何解决?有两种选择:
默认启用DbgPrint/KdPrint消息输出--open关键
HKLM\SYSTEM\CurrentControlSet\Session Manager\Debug Print Filter
。在此项下,创建名称为DEFAULT
的值将此项的值设置为等于DWORD值8以启用xxx_INFO_LEVEL输出以及xxx_ERROR_LEVEL
输出。或者尝试将掩码设置为0xF,以便获得所有输出。您必须重新启动才能使这些更改生效。具体更改
DPFLTR
的组件过滤器桅杆。在Vista/LH的早期版本中,通过在Kd_DPFLTR_MASK
(“ed Kd_DPFLTR_MASK”)处指定DWORD的掩码值来更改默认打印输出掩码。在内部版本5308(Vista的2月份CTP)中,看起来掩码变量已经改变,您需要设置DWORD的掩码值为Kd_DEFAULT_MASK
(“ed Kd_DEFAULT_MASK)。在任一情况下,指定8以启用DPFLTR_INFO_LEVEL
输出到DPFLTR_ERROR_LEVEL
输出,或0xf添加至获取输出各级见读取和过滤调试信息WDK文档(按照路径:驱动程序开发工具\调试工具DRIVERS \在驱动程序中使用调试代码\调试代码概述)以获取有关使用DbgPrintEx/KdPrintEx的完整详细信息,或者查看DbgPrintEx上的调试工具Windows文档(附录A)
我能够从WinDbg的范围内解决这个问题,在Windows 7 32位:
ed Kd_DEFAULT_Mask 8
根据MSDN文章,你也可以使用注册表,但你必须重新启动它生效。在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter
下创建一个名为DEFAULT
的DWORD密钥,其值为8
。
的最新微软的文档可以在这里找到:http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx
在默认情况下启用DbgPrint/KdPrint消息输出的注册表路径“HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \控制\会话管理器\调试打印过滤器” 会话管理器在控制之下。默认值通常是0xf。这使所有的消息。 要在您需要设置一个更好的拟合位掩码的信息位于 https://docs.microsoft.com/de-de/windows-hardware/drivers/devtest/reading-and-filtering-debugging-messages#identifying-the-component-name
如果你采取的Visual Studio 2015年或2017年,标准配置默认情况下不会设置该标志。当开始使用示例时,不要忘记在Debug-Target上设置这个额外的内容。
所以这帮助我在Windows 10环境中使用Windbg。
的第二个问题是使用在Windows 10 DEVCON像在回波示例 https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-#install
在子弹描述“7找到内置驱动程序文件”所需要的驱动程序文件transfering到调试目标并与DEVCON加载它们。使用Windows 10,您还必须复制目录文件。否则,devcon.exe将按照描述失败。 因为您还需要安装测试证书。这通常在使用Visual Studio 2015/2017准备调试环境时完成。请仔细检查certmgr。
- 1. 如何在WinDBg中启用内核跟踪
- 2. 禁用内核跟踪器
- 3. git - 跟踪Linux内核.config文件
- 4. git工作流跟踪linux内核
- 5. 获取从内核调用跟踪
- 6. 在Linux内核中跟踪中断
- 7. 由内核跟踪线程执行
- 8. Emacs WinDbg内核模式
- 9. 追踪在Windbg中创建对象的堆栈跟踪
- 10. Windows 7内核驱动程序签名
- 11. 内核调试通过串口的Windows 7
- 12. 胳膊Linux sshd-telnetd内核哎呀跟踪
- 13. Windows Workflow Foundation 4.0和跟踪
- 14. Windows Workflow Foundation 4.0和跟踪
- 15. Windows中的Bug跟踪
- 16. 使用Windows的事件跟踪跟踪DNS查询/答案
- 17. openCL光线跟踪和分支内核代码问题
- 18. 如何在内核模块中生成用户堆栈跟踪
- 19. 这个Linux内核跟踪是什么意思?
- 20. 跟踪核心动画动画
- 21. 解读多核性能跟踪(Eclipse/Android)
- 22. 如何跟踪Windows系统调用
- 23. WebSphere 7级加载程序跟踪
- 24. 联系表格7 ajax目标跟踪
- 25. iOS:跟踪用户移动24/7
- 26. VC++ 6.0 - WinDbg的堆栈跟踪显示在malloc的
- 27. WinDbg的:越来越堆栈跟踪在UnhandledExceptionFilter的
- 28. 如何充分利用堆栈跟踪(从内核或核心转储)?
- 29. 跟踪内部链接php
- 30. 跟踪内存泄漏