簡體   English   中英

Linux內核調試打印輸出?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM