转载地址:
https://blog.csdn.net/newtonnl/article/details/39697889
驱动中pr_debug定义在kernel/include/linux/printk.h
/* If you are writing a driver, please usedev_dbg instead */
#if defined(CONFIG_DYNAMIC_DEBUG)
/* dynamic_pr_debug() uses pr_fmt()internally so we don't need it here */
#define pr_debug(fmt, ...) \
dynamic_pr_debug(fmt,##__VA_ARGS__)
#elif defined(DEBUG)
#define pr_debug(fmt, ...) \
printk(KERN_DEBUGpr_fmt(fmt), ##__VA_ARGS__)
#else
#define pr_debug(fmt, ...) \
no_printk(KERN_DEBUGpr_fmt(fmt), ##__VA_ARGS__)
#endif
在makefile文件中增加ccflag+y =--DDEBUG
或者专门宏控制
ccflag+$(CONFIG_AUDIO_CODEC) =--DDEBUG
可以打开全部log,但是对于android多个文件来说log太多导致系统分析不方便,为了便于打开需要模块的log,我在需要打开log的文件中对define进行重新定义.
#ifdef pr_debug
#undef pr_debug
#define pr_debug(fmt, ...) \
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
#else
#define pr_debug(fmt, ...) \
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
#endif
这样就方便调试源代码中对应的log了,避免逐个打开的工作量.
在makefile中打印输出信息的方法是:$(warning xxxxx)或者$(error xxxxx)
输出变量方式为:$(warning $(XXX))
阅读(1758) | 评论(0) | 转发(0) |