一、综述
内核调试技术固然重要,但是在安卓驱动开发中,很少能用到本书说的技术,因此,细读文章,看看有什么新的收获!
通过打印调试
printk用法和printf基本相同,唯一区别就是有消息优先级。
例如
printk(KERN_DEBUG"hello linux\n");
在<linux/kernel.h>定义了这些级别
KERN_EMERG
用于紧急事件,它们一般是系统崩溃前提示的消息
KERN_ALERT
用于需要立即采取动作的情况
KERN_CRIT
临界状态,通常涉及严重的硬件或者软件操作失败
KERN_ERR
用于报告错误状态
KERN_WARNING
对可能出现问题的情况进行警告
KERN_NOTICE
有必要进行提示的正常清晰
KERN_INFO
提示性信息
KERN_DEBUG
用于调试信息
printk默认级别是DEFAULT_MESSAGE_LOGLEVEL
定义在kernel/printk.c
如果打印的时候不加优先级,默认KERN_WARNING
网友评论