printk学习之(二):调试

1.printk日志级别的来源

其实printk的基本原理我是通过韦东山的视频和一篇CSDN博客了解到的

博客链接贴在下面:

嵌入式Linux——printk:printk打印机制分析_静祥阁-CSDN博客_linux printk

博客写得很详细,该博客主要分为如下几个部分:

printk原理/控制台的选择/printk日志级别的设置

下面依次说一下这几个宏的含义:

console_loglevel:控制台当前日志级别,从上一篇printk原理中知道,只有printk自带的级别小于此值,printk才会调用控制台驱动打印,即,只有当printk("<n>...")中的n < console_loglevel时才会打印

default_message_loglevel:默认消息日志级别,从上一篇printk原理中知道,当printk中不带显示的日志级别时,代码会自动在log_buf中加上这个级别,即,如果默认消息日志级别是n且printk中无日志级别,系统自动加为printk("<n>...")

minimum_console_loglevel:最小控制台日志级别:如果更改控制台日志级别不能小于此值

default_console_loglevel:默认控制台日志级别

2.printk日志级别的设置

一般来说,修改printk的日志级别有三种方法:

1).直接修改内核源码(不提倡)

2).修改bootargs启动参数(嵌入式Linux——printk:printk打印机制分析_静祥阁-CSDN博客_linux printk)

3).要将设置的值写入proc系统/proc/sys/kernel/printk

 我们再来看一下printk中的8种日志级别以及对应的宏:

#define	KERN_EMERG	"<0>"	/* system is unusable			*/
#define	KERN_ALERT	"<1>"	/* action must be taken immediately	*/
#define	KERN_CRIT	"<2>"	/* critical conditions			*/
#define	KERN_ERR	"<3>"	/* error conditions			*/
#define	KERN_WARNING	"<4>"	/* warning conditions			*/
#define	KERN_NOTICE	"<5>"	/* normal but significant condition	*/
#define	KERN_INFO	"<6>"	/* informational			*/
#define	KERN_DEBUG	"<7>"	/* debug-level messages			*/

Q:那么KERN_DEBUG级别的打印要怎么体现出来呢?

A:可以将console_loglevel改到8或者10甚至更高,因为它就是个int类型的值嘛

所以,一般我们可以这样使用printk:

3.你还在使用printk吗?

未完...... 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值