如何从内核模式驱动程序中查看DbgPrint输出?

问题描述 投票:9回答:2

我发现很难看到我正在研究的内核模式驱动程序的调试输出。

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

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

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

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

debugging windows-xp driver kernel
2个回答
10
投票

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

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

但是,您确实需要两台机器设置才能进行任何实际的开发工作。


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

© www.soinside.com 2019 - 2024. All rights reserved.