很多内核开发者喜欢的调试工具是printk,在Linux内核中,使用printk()函数来打印信息,它与C库的printf()函数类似。
printk()与printf()的一个重要区别是: printk()提供输出等级 。内核会根据这个等级来判断是否在终端或者串口中输出。
printk的输出格式
在实际调试中,printk()
可以和printf()
一样,直接输出一条字符串。
不过为了更好的显示一些调试信息,可以加上函数名字(__func__)
和代码行号(__LINE__)
,例如:
printk(KERN_EMERG"figo:%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 |
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
内核
+关注
关注
3文章
1309浏览量
39850 -
Linux
+关注
关注
87文章
10990浏览量
206738 -
函数
+关注
关注
3文章
3882浏览量
61310
发布评论请先 登录
相关推荐
介绍Lauterbach调试工具的应用
该演示由Lauterbach中国团队提供,展现您如何通过Lauterbach强大的嵌入式调试工具Trace32来调试和分析运行在Altera Cyclone V SoC芯片上面的软件。Lauterbach调试工具支持几乎所有操作
如何使用英特尔SDK for OpenCL调试工具调试OpenCL主机和内核代码
了解如何使用英特尔®SDKfor OpenCL™调试工具来调试OpenCL™主机和内核代码
Python自定义输出格式
自定义输出格式 我们可以在之前添加的输出格式中添加其他的格式内容 import coloredlogs import logging def func_name (): # 增加了 modules
评论