首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DebugView不捕获KdPrint输出

DebugView不捕获KdPrint输出
EN

Stack Overflow用户
提问于 2020-08-05 07:10:45
回答 2查看 814关注 0票数 0

我无法使DbgView.exe在我的Windows10 64位v2004虚拟机上正常工作。如果使用KdPrint,该程序不会从驱动程序捕获任何内核消息,但在DbgPrint上运行良好。我已经尝试了"bcdedit /debug on",在注册表编辑器中添加了"Debug Print Filter“,并重新启动,启用了详细的内核输出。我也在我的主机上尝试过,同样的结果。它是一个非常简单的驱动程序,只需加载和卸载,从Windows内核编程一书中复制而来。

这是可行的

代码语言:javascript
复制
DbgPrint("Driver initialized.\n");

这不是

代码语言:javascript
复制
KdPrint(("Driver initialized.\n"));

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2020-08-06 01:34:37

跳转到KdPrint,你会看到预处理的魔力:

代码语言:javascript
复制
#if DBG 

#define KdPrint(_x_) DbgPrint _x_
#define KdPrintEx(_x_) DbgPrintEx _x_ 
#define vKdPrintEx(_x_) vDbgPrintEx _x_
#define vKdPrintExWithPrefix(_x_) vDbgPrintExWithPrefix _x_
#define KdBreakPoint() DbgBreakPoint() 

#define KdBreakPointWithStatus(s) DbgBreakPointWithStatus(s)

#else 

#define KdPrint(_x_)
#define KdPrintEx(_x_) 
#define vKdPrintEx(_x_)
#define vKdPrintExWithPrefix(_x_)
#define KdBreakPoint() 

#define KdBreakPointWithStatus(s)

#endif // DBG wudfwdm

这意味着如果您使用Release配置进行编译(不会定义DBG宏),KdPrint不会发生任何事情。

所以这不是DbgView的问题。

票数 2
EN

Stack Overflow用户

发布于 2021-11-25 23:20:30

即使使用调试编译的驱动程序,winPE上的dbgView 4.90 (dbgview64.exe)也不会打印KdPrint,除非您同时单击Capture,Capture Kernel和Capture,Enable Verbose Kernel Output。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63256262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档