很多内核开发者喜欢的调试工具是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 |
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
内核
+关注
关注
4文章
1436浏览量
42496 -
Linux
+关注
关注
88文章
11628浏览量
218009 -
函数
+关注
关注
3文章
4406浏览量
66851
发布评论请先 登录
相关推荐
热点推荐
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

内核调试工具printkprintk的输出格式
评论