本文主要是介绍Linux-printk分析、使用__FILE__, __FUNCTION__, __LINE__ 调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.在驱动调试中,使用printk(),是最简单,最方便的办法
当uboot的命令行里的“console=tty1”时,表示printk()输出在开发板的LCD屏上
当uboot的命令行里的“console=ttySA0,115200”时,表示printk()输出在串口UART0上,波特率=115200
当uboot的命令行里的“console=tty1 console=ttySA0,115200”时,表示printk()同时输出在串口上,以及开发板的LCD屏上
2、打印级别"<0>"至 "<7>"
发现printk的打印级别 在include/linux/kernel.h中找到:
#define KERN_EMERG "<0>" // 系统崩溃
#define KERN_ALERT "<1>" //必须紧急处理
#define KERN_CRIT "<2>" // 临界条件,严重的硬软件错误
#define KERN_ERR "<3>" // 报告错误
#define KERN_WARNING "<4>" //警告
#define KERN_NOTICE "<5>" //普通但还是须注意
#define KERN_INFO "<6>" // 信息
#define KERN_DEBUG "<7>" // 调试信息
默认值default_message_loglevel为打印级别"<4>"
实例:
//静态注册设备号ret = register_chrdev_region(devnr, count, chrdev_name);if(ret != 0) {printk(KERN_EMERG"register_chrdev_region error\n");goto devnr_requst_err;}}
3、常用调试语句__FILE__, __FUNCTION__, __LINE__
printk(KERN_DEBUG"%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);
//__FILE__: 表示文件路径
//__FUNCTION__: 表示函数名
//__LINE__: 表示代码位于第几行
//KERN_DEBUG: 等于7,表示打印级别为7
这篇关于Linux-printk分析、使用__FILE__, __FUNCTION__, __LINE__ 调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!