首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内核跟踪Windows7 WinDbg

内核跟踪Windows7 WinDbg
EN

Stack Overflow用户
提问于 2011-01-19 18:47:49
回答 3查看 18.5K关注 0票数 13

我在调试en_windows_7_checked_build_dvd_x86_398742时没有得到调试信息。我甚至看不到我自己的跟踪信息(ATLTRACE)。与之相反,Windows XP Checked的工作方式就像一个护身符。从Windows7开始调试会话时,我收到"Bad QueryIdType:5“消息。很明显,内核调试设置正确。请帮帮我。

EN

回答 3

Stack Overflow用户

发布于 2012-10-24 16:11:18

我能够在windbg中修复它,在windows732位上:

代码语言:javascript
复制
ed Kd_DEFAULT_Mask 8

根据msdn文章,您也可以使用注册表,但必须重新启动才能使其生效。在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter下创建一个名为DEFAULT的DWORD键,其值为8

可在此处获得最新的microsoft文档:http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx

票数 16
EN

Stack Overflow用户

发布于 2011-01-19 19:32:08

好了,我找到了解决方案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消息的输出--打开密钥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值指定掩码值来更改默认打印输出掩码。在build 5308 (Vista的二月份CTP )中,掩码变量似乎已更改,您需要在Kd_DEFAULT_MASK ("ed Kd_DEFAULT_MASK“)中设置DWORD值。在这两种情况下,指定8以启用DPFLTR_INFO_LEVEL输出以及DPFLTR_ERROR_LEVEL输出,或指定0xF以获取所有级别的输出。

有关使用DbgPrintEx/KdPrintEx的完整详细信息,请参阅用于读取和过滤调试消息的WDK文档(遵循以下路径: Driver Development Tools\Tools for Debugging \Using Debugging in a Driver\Debugging Overview)。或者查看DbgPrintEx上的调试工具文档(附录A)。

票数 13
EN

Stack Overflow用户

发布于 2017-11-04 17:31:12

默认情况下,要启用DbgPrint/KdPrint消息的输出,注册表路径是"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session管理器\调试打印过滤器“控制下的会话管理器列表。默认值normaly为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很有帮助。

第二个问题是在Windows10上使用devcon,如echo示例https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel-mode-#install中所述

在"7定位构建的驱动程序文件“中,将所需的驱动程序文件传输到Debug-Target,并使用devcon加载它们。使用Windows10时,您还必须复制目录文件。否则,devcon.exe将如所述那样失败。当然,您还需要安装测试证书。这通常是在使用Visual Studio 2015/2017准备调试环境时完成的。只要仔细检查certmgr就可以了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4734335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档