Отладочные отпечатки Linux-ядра?

Есть ли лучший способ отладки распечаток в ядре Linux?

Прямо сейчас засорив код:

printk(KERN_DBG "%s:%d - %s() <message>", __FILE__, __LINE__, __FUNCTION__ ); 

Это не очень чисто.

Для всей строки должно быть #ifdef: ed в некотором хорошем виде.

Ответ 1

Использование

/* 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.

Ответ 2

Если это для быстрой отладки, просто printk() работает хорошо.

Если это для отладки в большей производственной ситуации, возможно, используйте pr_debug(), поэтому сообщения можно включить во время выполнения.

Несмотря на это, обычно ( "% s: xxx", func). Эти имена файлов и номера строк будут очень раздражать. Вот почему вы не нашли никакого "стандартного" решения - потому что его нет.