首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux-kernel调试打印输出?

Linux-kernel调试打印输出?
EN

Stack Overflow用户
提问于 2011-02-14 19:46:48
回答 2查看 7.8K关注 0票数 13

在Linux内核中有没有更好的方法来调试打印输出?

现在在代码中乱扔垃圾:

代码语言:javascript
复制
printk(KERN_DBG "%s:%d - %s() <message>", __FILE__, __LINE__, __FUNCTION__ ); 

这不是很干净。

应该有一种方法让整个行以某种好的方式成为#ifdef:ed。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-14 22:00:17

使用

代码语言:javascript
复制
/* At the top of the file, before any includes */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#include <linux/printk.h>

/* in code... */
pr_devel("foobar happened\n");

作为基础(标准实践)。然后,如果需要,可以将__FILE____LINE__添加到pr_fmt定义中。

票数 21
EN

Stack Overflow用户

发布于 2011-02-14 22:20:05

如果这是为了快速调试,则只需使用printk()即可。

如果这是为了在更多的生产环境中进行调试,那么可以使用pr_debug(),这样就可以在运行时启用消息。

无论如何,("%s: xxx",func)通常就足够了。这些文件名和行号很快就会变得令人讨厌。这也是为什么您没有找到任何“标准”解决方案的原因--因为没有。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4991763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档