1.Android内核打印管理等级
在大家调试Linux内核时,想必会经常看到pr_err、pr_debug、pr_info 等打印函数,这些皆在kernel/msm-3.18/include/linux/printk.h 中定义。这里放上printk.h中部分节选。
这些想必看到都能懂,我们具体说下pr_debug这个打印如何使能,看到上面的截图可能许多人会问没看到pr_debug声明呀,别急,继续往下看
这里看到在pr_debug的声明上方有个宏的限制,也就是说我们要使能这个函数功能,就必须在你所调用的C文件中进行该宏DEBUG的定义
这里提供两个方式:
1.直接在当前C文件中定义。(简单粗暴)
2.在当前C文件同级目录下的Makefile中声明
以DMA为例,在drivers/dma/Makefile中定义了编译选项
ccflags-$(CONFIG_DMADEVICES_DEBUG) := -DDEBUG
其作用相当于在drivers/dma/所有子文件定义了宏#define DEBUG
当然,这个只是打开了宏的功能,确实能让pr_debug工作了,但是可能还会有小伙伴会说,为啥我这样做了还是看不到pr_debug的打印信息啊。当然这还是不够了,此时你需要了解内核还有一个打印级别,也