[英]Linux-kernel debug printouts?
有沒有更好的方法來調試Linux內核中的打印輸出?
現在亂丟代碼:
printk(KERN_DBG "%s:%d - %s() <message>", __FILE__, __LINE__, __FUNCTION__ );
哪個不是很干凈。
應該有一種方式讓整行成為#ifdef
:ed以一種不錯的方式。
使用
/* 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
定義中。
如果這是為了快速調試,只需printk()運行良好。
如果這是用於更多生產情況下的調試,可以使用pr_debug(),因此可以在運行時啟用消息。
無論如何,(“%s:xxx”, func )通常就足夠了。 這些文件名和行號很快就會變得煩人。 這也是你沒有找到任何“標准”解決方案的原因 - 因為沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.