Linux-ядро отладочных распечаток? - PullRequest
10 голосов
/ 14 февраля 2011

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

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

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

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

Должен быть способ для всего ряда быть #ifdef: редактировать каким-то приятным способом.

Ответы [ 2 ]

16 голосов
/ 14 февраля 2011

Используйте

/* 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 голосов
/ 14 февраля 2011

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

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

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

...