概述
内核中的大部分驱动都使用了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宏, 注意必须是在 或者前面定义.
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
最后
以上就是典雅大象为你收集整理的linux可以运行dev吗,打开 Linux的dev_dbg的全部内容,希望文章能够帮你解决linux可以运行dev吗,打开 Linux的dev_dbg所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复