10

我发现很难从我正在处理的内核模式驱动程序中看到调试输出。

我是驱动程序开发的新手。我正在尝试在 Windows XP 上调试 USB 驱动程序。我已经安装了 DDK,并为我的驱动程序构建了一个“检查模式”版本。我已经安装了驱动程序,如果我使用十六进制编辑器在 windows/drivers 中查看驱动程序的 .sys 文件,我可以看到调试输出字符串的文本。

如果我在 Visual Studio 下运行使用我的驱动程序的应用程序,我的调试输出不会像应用程序自己的调试输出那样出现在输出窗口中。在网上搜索,我发现了许多关于如何显示内核调试输出的不同说法。对于一般的内核调试,人们似乎要么通过 NULL 调制解调器电缆(Crikey,它是 2012 年)进行远程调试,要么使用虚拟机和虚拟 com 端口。这两种方法似乎都需要大量的工作才能看到调试输出。有替代方案吗?

我尝试在“本地”内核调试模式下使用 WinDbg,但它没有显示任何内容。它警告我应该在启用“/debug”的情况下重新启动窗口。我这样做了,但没有帮助。

还有其他想法吗?还是我在要求不可能的事情?

4

2 回答 2

10

DebugView 将显示来自驱动程序的跟踪消息:

http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

但是,您确实需要两台机器来完成任何真正的开发工作。

于 2012-05-18T17:55:14.473 回答
1

你查到的信息是正确的。您确实需要 2 台机器来调试内核模式驱动程序。

如果您选择使用 2 台物理机,它们可以通过 USB 连接。NULL 调制解调器(COM 端口)是将调试器连接到虚拟机的常用方法,其中 VM 的 COM 端口被视为主机上的命名管道,因此您实际上并不需要 NULL 调制解调器电缆。

几个链接

http://msdn.microsoft.com/en-us/library/ff538141.aspx

http://msdn.microsoft.com/en-us/library/ff542279.aspx

于 2012-05-18T17:52:43.430 回答