很多内核开发者喜欢的调试工具是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文章
1362浏览量
40221 -
Linux
+关注
关注
87文章
11222浏览量
208886 -
函数
+关注
关注
3文章
4304浏览量
62415
发布评论请先 登录
相关推荐
MCU51的串口调试工具
MCU51的串口调试工具:本站会员 gxujjd 及sltian 推荐的Mcu51网站的免费串口调试工具。此版本使用C++Builder编写.
发表于 01-16 11:53
•126次下载
如何使用英特尔SDK for OpenCL调试工具调试OpenCL主机和内核代码
了解如何使用英特尔®SDKfor OpenCL™调试工具来调试OpenCL™主机和内核代码
Python自定义输出格式
自定义输出格式 我们可以在之前添加的输出格式中添加其他的格式内容 import coloredlogs import logging def func_name (): # 增加了 modules
评论