【发布时间】:2015-02-10 04:20:31
【问题描述】:
我想在我的驱动程序(调试)输出前加上它的名称,即[myDriver] Actual message。因为每次我想覆盖printk/pr_* 以实际包含[myDriver] 部分时,写printk(level NAMEMACRO "Actual message\n") 很烦人。但是我想不出办法来做到这一点。在最好的情况下,解决方案不会强迫我更改代码中的printk/pr_* 调用(更改调用后,这变得微不足道)。
这可能吗? (因为我包含了其他标题,而这些标题又包含 printk 标题,所以它将始终被定义为排除不链接到原始标题的情况,如其他答案中所建议的那样)
目前的驱动程序有什么理由不看这个文本吗? (还有其他方法可以按驱动过滤 dmesg 吗?)
我对@987654331@ 有所了解,但我没有找到任何针对一般警告的开发人员,因此我将为此使用printk/pr_err。
【问题讨论】:
-
pr_debug()的替代品是dev_dbg()(在中);但是看不到这些的人不应该编写内核代码。 -
@artlessnoise 尽管
pr_debug和dev_debug非常相似,但我认为人们仍然应该区分,要么只是为了null device check,要么是因为实现可能会改变。这也是为什么内核有很多宏只做访问一个结构成员的原因。分离接口和实现。虽然现在直接访问是相同的,但以后可能会改变并得到改进。 -
@CL 很好看,它有我正在寻找的答案。
标签: linux-kernel kernel linux-device-driver kernel-module