Linux内核调试:printk及相关宏的使用与调试技巧
1. 利用pr_ 便捷宏
为了方便使用,内核提供了形式为 pr_<foo>
(或 pr_*()
)的简单包装宏,其中 <foo>
指定日志级别。例如,原本的代码:
printk(KERN_INFO "Hello, kernel debug world\n");
可以使用以下代码替代:
pr_info("Hello, kernel debug world\n");
内核头文件 include/linux/printk.h
定义了以下 pr_<foo>
便捷宏,建议使用它们来替代传统的 printk()
:
- pr_emerg()
:日志级别为 KERN_EMERG
的 printk()
- pr_alert()
:日志级别为 KERN_ALERT
的 printk()
- pr_crit()
:日志级别为 KERN_CRIT
的 printk()