Kernel之debug调试信息
背景
平时我们在调试内核或驱动的时候,需要打开或增加调试信息,最常见的比如dev_dbg()、pr_debug()等
以内核v5.15为例,我们先来看一下上面2个日志打印函数在内核里面的大致定义:
dev_dbg() [include/linux/dev_printk.h]
C
#if defined(CONFIG_DYNAMIC_DEBUG) || \
(defined(CONFIG_DYNAMIC_DEBUG_CORE) && defined(DYNAMIC_DEBUG_MODULE))
#define dev_dbg(dev, fmt, ...) \
dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
#elif defined(DEBUG)
#define dev_dbg(dev, fmt, ...) \
dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__)
#else
#define dev_dbg(dev, fmt, ...) \
({ \
if (0) \
dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__); \
})
#endif
pr_debug() [include/linux/printk.h]
作者: Shell
链接: https://notes.z-dd.online/2023/02/14/Kernel%E4%B9%8Bdebug%E8%B0%83%E8%AF%95%E4%BF%A1%E6%81%AF/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。