很多内核开发者喜欢的调试工具是printk,在linux内核中,使用printk()函数来打印信息,它与c库的printf()函数类似。
printk()与printf()的一个重要区别是: printk()提供输出等级 。内核会根据这个等级来判断是否在终端或者串口中输出。
printk的输出格式在实际调试中,printk()可以和printf()一样,直接输出一条字符串。
不过为了更好的显示一些调试信息,可以加上函数名字(__func__)和代码行号(__line__),例如:
printk(kern_emergfigo:%s, %d, __func__, __line__);在双引号前加上输出等级kern_emerg,代表输出等级为0。
另外,在使用printk()的时候需要注意输出格式,否则在编译时会出现很多的警告。printk的输出格式:
数据类型printk格式符
int %d或%x
unsigned int %u或%x
long %ld或%lx
long long %lld或%llx
unsigned long long %llu或%llx
size_t %zu或%zx
size_t %zd或%zx
函数指针 %pf
基于溶解性微针和粘合性透皮贴剂的给药系统,用于治疗类风湿性关节炎
全智能变频恒压供水控制器的功能和特点是怎样的
华为荣耀6X千元双摄,4+32G,售价1299元
2020年特斯拉损失高达401亿美元
ios10.2越狱有戏,不过需注意谨慎升级!
内核调试工具printkprintk的输出格式
小米Mi 11 Lite将带来IPS LCD全高清显示屏
索尼HT-X9000F回音壁体验 足不出户便能感受影院般的视听效果
苹果托三星开发新机型引起JDI提起诉讼
3G LTE简介
一周融资三起 AI投资理性吗?
无线通信协议未统一,三大巨头谁做老大?
华云数据荣获“2019中国最有影响力物联网云平台企业奖”
基于训练阶段使用知识库+KNN检索相关信息辅助学习方法
索尼次旗舰液晶电视X9300E评测体验:买得起的高画质电视
华为开发者大会 2020 开幕 揭开技术神秘面纱
小米6和三星S8延迟发布竟都是因为它!魅族也不可避免
苹果A13处理器订单或已钦定台积电
基于FPGA的ARM并行总线和端口设计
电压放大器在低频探测天线技术研究中的应用