在开发过程中,无可避免的会遇到printk打印信息的输出,在写新功能或BUG调试的时候我们想看到更多的调试信息,但版本发出后,我们想看到尽可能少的输出信息,那么怎么控制这个呢。。 下面的方法可以对输出进行控制:
#undefPRINTD
#undefPRINTDD
#ifdefFREE_DEBUGG
#definePRINTDD(nu,fmt,arg...) printk(KERN_DEBUG"free:"fmt,##arg)
#else
#definePRINTDD(nu,fmt,arg...)
#endif
#ifdef FREE_DEBUG
#definePRINTD(nu,fmt,arg...) \
do{ \
if(1 == nu) printk(KERN_DEBUG"free:"fmt,##arg); \
else if(2 == nu){ \
PRINTDD(nu,fmt,##arg);\
}\
}while(0)
#else
#define PRINTD(nu,fmt,arg...)
#endif
其中宏FREE_DEBUG是来控制所有的DEBUG是否输出
而宏FREE_DEBUGG是来控制部分部分的日志输出
使用方式:
比如想打印“”hello“”字符串,并且这个字符串即使在发布的版本中也想打印
那么 在Makefile中添加EXTRA_CFLAGS = -DFREE_DEBUG 然后调用
PRINTD(1,”hello”);
如果这个字符串你想在调试的时候才输出,在发布版本中不想看到它, 那么就可以使用
PRINTD(2,”hello”) 在调试的时候打开宏 FREE_DEBUGG 在发布的时候关闭宏FREE_DEBUGG 这样就能对日志的输出进行控制了