在Linux内核中有没有更好的方法来调试打印输出?
现在在代码中乱扔垃圾:
printk(KERN_DBG "%s:%d - %s() <message>", __FILE__, __LINE__, __FUNCTION__ ); 这不是很干净。
应该有一种方法让整个行以某种好的方式成为#ifdef:ed。
发布于 2011-02-14 22:00:17
使用
/* 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定义中。
发布于 2011-02-14 22:20:05
如果这是为了快速调试,则只需使用printk()即可。
如果这是为了在更多的生产环境中进行调试,那么可以使用pr_debug(),这样就可以在运行时启用消息。
无论如何,("%s: xxx",func)通常就足够了。这些文件名和行号很快就会变得令人讨厌。这也是为什么您没有找到任何“标准”解决方案的原因--因为没有。
https://stackoverflow.com/questions/4991763
复制相似问题