`
yexin218
  • 浏览: 958304 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

关于DebugView无法打印出DbgPrint信息

阅读更多
朋友调试一个Filter驱动程序,但终究无法在Debugview中打印出调试信息。
#if DBG

extern INT                filterDebugLevel;


#define DEBUGP(lev, stmt)                                               \
        {                                                               \
            if ((lev) <= filterDebugLevel)                             \
            {                                                           \
                DbgPrint("NDISLWF: "); DbgPrint stmt;                   \
            }                                                           \
        }

#define DEBUGPDUMP(lev, pBuf, Len)                                      \
        {                                                               \
            if ((lev) <= filterDebugLevel)                             \
            {                                                           \
                DbgPrintHexDump((PUCHAR)(pBuf), (ULONG)(Len));          \
            }                                                           \
        }

#define FILTER_ASSERT(exp)                                                \
        {                                                               \
            if (!(exp))                                                 \
            {                                                           \
                DbgPrint("Filter: assert " #exp " failed in"           \
                    " file %s, line %d\n", __FILE__, __LINE__);         \
                DbgBreakPoint();                                        \
            }                                                           \
        }
#endif //endDBG


要打印的东西其实很简单比如:
DEBUGP(DL_TRACE,("===>DriverEntry...\n"));

她以为总自己dbgprint()函数用错了,或者这个定义的宏有问题,估计是没有看清这个宏的定义,没有看清楚打印调试信息的条件,里面定义了debuglevel,这个值必须小于等于某个值的时候才打印出来,所以如果你在成功调试程序之后,可能不希望再打印出用于跟踪调试的信息,那么可能会把调试等级debuglevel的值调高。默认的调试等级定义如下:
//
// Message verbosity: lower values indicate higher urgency
//
#define DL_EXTRA_LOUD       20
#define DL_VERY_LOUD        10
#define DL_LOUD             8
#define DL_INFO             6
#define DL_TRACE            5
#define DL_WARN             4
#define DL_ERROR            2
#define DL_FATAL            0

之所以没有打印出来是因为debuglevel的值为:
INT             	filterDebugLevel = DL_WARN;

这下才恍然大悟~【DL_TRACE > DL_WARN】微软的代码其实这样写很方便,比如你需要自己在增添某些自己增加的调试信息,而不希望看见其他的原来的调试信息,就可以自己定义一个debuglevel值。然后在DEBUG宏里面做好选择判断就可以了。
分享到:
评论

相关推荐

    Debug View

    DebugView works on Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows 95, Windows 98 and Windows Me. Note: if you want to run DebugView on Windows 95 you must install the WinSock2 ...

    DebugView带GUI山寨 for Xp/2k3(x86/x64)/Vista

    它的Hook也就没有恢复,因此调试这个山寨DebugView的时候不能用DbgView, 因为一运行它就把那个函数给先Hook掉了。。。 因此我的DebugView加了卸载自己驱动的支持。。。 由于以上原因,如果你已经运行过...

    Dbgview DebugView v4.90 微软调试视图

    DebugView是一个应用程序,可让您监视调试输出本地系统,或网络上您可以通过其访问的任何计算机 TCP/IP。它能够显示内核模式和Win32调试 输出,因此您不需要调试器来捕获调试输出 生成的应用程序或设备驱动程序,也...

    dbgview调试信息查看器

    dbgview调试信息查看器 调试用的调试信息查看器 调试用的

    DbgPrint函数流程分析[定义].pdf

    DbgPrint函数流程分析[定义].pdf

    调试开发工具集

    DebugView Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试...

    HKEY-LOCAL-MACHINE\SYSTEM\CurrentControlSet\Control\

    设置Dbgprint 打印调试

    SysinternalsSuite windows工具集合

    DebugView: Sysinternals 的又一首创: 该程序可以拦截设备驱动对 DbgPrint 的调用和Win32程序对OutputDebugString 的调用. 程序可以浏览或记录本机或远程计算机上调试会话的输出,而无须激活调试器. Desktops:...

    Dbgview.zip

    DbgView 用于捕捉内核打印(驱动程序的DbgPrint) A

    注册表批量修改权限命令

    DebugView Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试...

    SysinternalsSuite

     DebugView  Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录...

    Windows Sysinternals Suite v2019.06.29.zip

    DebugView Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录...

    Sysinternals 实用程序全集 (完整版 49.2M)

    DebugView Another first from Sysinternals: This program intercepts calls made to DbgPrint by device drivers and OutputDebugString made by Win32 programs. It allows for viewing and recording of debug ...

    微软Sysinternals Suite工具包 2018.12.18 官方版.zip

    DebugView Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录...

    易语言内存调试清零

    易语言内存调试清零源码,内存调试清零,DriverUnload,DispatchCreate,DispatchClose,DispatchDeviceControl,ReadIntByAddr,DriverEntry,GetFunctionAddress,DbgPrint,DbgPrintInt,DbgPrintString,ExAllocatePool,...

    Dbgview工具

    驱动的dbgprint调式信息都能被dbgview工具捕捉到

    Sysinternals 微软系统监控实用工具

    DebugView v4.76(2008 年 10 月 16 日) Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上...

    AllTools:所有合理稳定的工具

    DebugPrint-监视OutputDebugString / DbgPrint(Ex)调用(不需要驱动程序) DriverMon-监视任何驾驶员活动 ErrorLookup -Win32(GetLastError)和NTSTATUS的错误代码描述 ETWExplorer-查看注册提供者的ETW XML清单...

    酷软系列-SysinternalsSuite (微软经典套装) [评价可免费]

     DebugView  Sysinternals 的另一个首开先例:这个程式会拦截分别由 DbgPrint 利用装置驱动程式,和 OutputDebugString 利用 Win32 程式所做的呼叫。它能够在您的本机上或跨往际往路,在不需要作用中的侦错工具...

Global site tag (gtag.js) - Google Analytics