阅读:5113回复:3
DebugView使用遇到问题
不好意思,因为是初学者,问的问题可能很白痴,拜托大家不要太介意哈~
先说明一下我系统的环境,机器是XP系统,虚拟机里边是vista系统。我需要写一个NDIS Filter Driver,我想用类似于print的方法测试一下我的driver,现在我用kdPrint(())/kdPrintEx(());的函数来打印一些数据包的信息,但是在我编译完成到安装完成整个过程,dbgView上边都没有任何信息出来。我试过: 1)在XP下运行dbgView,只是有一些wait for cmd的信息; 2)在Vista虚拟机中运行,无法勾上capture kernel这个选项(kernel dubug output capture is unavailable),运行时也没有任何打印信息出来. 在网上搜索都是说选择capture kernel就OK了,我在XP中选择了没用,而在Vista虚拟机中有无法选择,我想请问一下各位,dbgView可否运行在XP上而同时可以得到Vista虚拟机的debug信息(即第一种方案可否可行?) 还有,现在的kdPrint(())和kdPrintEx(())都说要在满足一定的条件下才会编译(The KdPrintEx macro sends a string to the kernel debugger if certain conditions are met.),所谓的一定条件我在msdn文档上找不到,有谁知道吗? |
|
沙发#
发布于:2009-11-19 20:51
回 楼主(hellodaisy) 的帖子
不好意思,之前说的第二种方案在Vista虚拟机下运行dbgView,需要切换到管理员模式就可以选择capture kernel了,只是就算选择了依旧没有打印出相关的信息,不知道是否好需要什么设置。 |
|
板凳#
发布于:2009-11-24 12:35
呵呵,问题解决了,很抱歉之前是我自己的问题,不过还是善始善终的好,所以来这说明一下。
dbgView没有什么问题的,能很好的在vista和win7中运行,之前信息没有打印出来,是我没有注意以下代码里边的lev和filterDebugLevel等级的定义,结果其实DbgPrint并没有运行,惭愧之前只是拿msdn上的例子来跑,并没有留意代码,希望没有误导其他人。 #define DEBUGP(lev, stmt) \ { \ if ((lev) <= filterDebugLevel) \ { \ DbgPrint("NDISLWF: "); DbgPrint stmt; \ } \ } |
|
地板#
发布于:2010-06-14 16:51
在DriverEntry函数中使用未公开函数 DbgSetDebugFilterState(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, TRUE); 即可以实现打开调试信息。windows vista以上使用DbgPrintEx函数,使用DebugView Ver4.76版本查看。
|
|