hellodaisy
驱动牛犊
驱动牛犊
  • 注册日期2009-11-06
  • 最后登录2010-01-03
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5037回复:3

DebugView使用遇到问题

楼主#
更多 发布于:2009-11-19 17:43
不好意思,因为是初学者,问的问题可能很白痴,拜托大家不要太介意哈~
先说明一下我系统的环境,机器是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文档上找不到,有谁知道吗?
hellodaisy
驱动牛犊
驱动牛犊
  • 注册日期2009-11-06
  • 最后登录2010-01-03
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-11-19 20:51
回 楼主(hellodaisy) 的帖子
不好意思,之前说的第二种方案在Vista虚拟机下运行dbgView,需要切换到管理员模式就可以选择capture kernel了,只是就算选择了依旧没有打印出相关的信息,不知道是否好需要什么设置。
yexin218
驱动牛犊
驱动牛犊
  • 注册日期2008-02-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分72分
  • 威望384点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-11-24 12:35
呵呵,问题解决了,很抱歉之前是我自己的问题,不过还是善始善终的好,所以来这说明一下。
dbgView没有什么问题的,能很好的在vista和win7中运行,之前信息没有打印出来,是我没有注意以下代码里边的lev和filterDebugLevel等级的定义,结果其实DbgPrint并没有运行,惭愧之前只是拿msdn上的例子来跑,并没有留意代码,希望没有误导其他人。

#define DEBUGP(lev, stmt)                                               \
        {                                                               \
            if ((lev) <= filterDebugLevel)                             \
            {                                                           \
                DbgPrint("NDISLWF: "); DbgPrint stmt;                   \
            }                                                           \
        }
jbhlzw
驱动牛犊
驱动牛犊
  • 注册日期2006-04-03
  • 最后登录2010-09-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望93点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-06-14 16:51
在DriverEntry函数中使用未公开函数    DbgSetDebugFilterState(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, TRUE); 即可以实现打开调试信息。windows vista以上使用DbgPrintEx函数,使用DebugView  Ver4.76版本查看。
游客

返回顶部