如何打印 Linux的dev_dbg的调试信息

内核中的大部分驱动都使用了dev_dbg接口打印调试信息,这些信息非常有用帮助你去调试理解代码,默认是不会输出到控制台的。基于Linux version 4.14.78
有两种方法让dev_dbg 输出:

 

/kernel/include/linux/device.h
#if defined(CONFIG_DYNAMIC_DEBUG)
#define dev_dbg(dev, format, ...)            \
do {                             \
    dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
} while (0)
#elif defined(DEBUG)
#define dev_dbg(dev, format, arg...)        \
    dev_printk(KERN_DEBUG, dev, format, ##arg)
#else
#define dev_dbg(dev, format, arg...)                \
({                              \
    if (0)                          \
        dev_printk(KERN_DEBUG, dev, format, ##arg); \
})
#endif

1.定义DEBUG宏:

在需要打印dev_dbg调试信息的驱动文件开头定义DEBUG宏, 注意必须是在<linux/device.h> 或者<linux /paltforam_device.h>前面定义.

 

image.png

2.打开动态调试功能:

CONFIG_DEBUG_FS=y
CONFIG_DYNAMIC_DEBUG=y
动态调试方法:

 

mount -t debugfs none /sys/kernel/debug                         路径也可以自己选择,这里用系统默认路径        
echo -n 'file xxx.c +p' > /data/debugfs/dynamic_debug/control  增加xxx.c文件dynamic debug的输出
echo -n 'file xxx.c -p' > /data/debugfs/dynamic_debug/control  去掉xxx.c文件dynamic debug的输出

3.调整显示级别:

CONFIG_CONSOLE_LOGLEVEL_DEFAULT=10
查看:
cat /proc/sys/kernel/printk
10 4 1 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值