Stampe di debug del kernel di Linux?

C’è un modo migliore per eseguire il debug delle stampe nel kernel di Linux?

In questo momento sparpagliamo il codice con:

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

Che non è molto pulito

Ci dovrebbe essere un modo per l’intera fila di essere #ifdef : ed in un modo carino.

Uso

 /* At the top of the file, before any includes */ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include  /* in code... */ pr_devel("foobar happened\n"); 

come base (la pratica standard). È quindi ansible aggiungere __FILE__ o __LINE__ alla definizione pr_fmt se necessario.

Se questo è per il debug veloce, solo printk () funziona bene.

Se questo è per il debug in più situazioni di produzione, forse usa pr_debug (), quindi i messaggi possono essere abilitati in fase di runtime.

Indipendentemente, (“% s: xxx”, func ) è in genere sufficiente. Questi nomi di file e numeri di linea diventeranno molto fastidiosi. Questo è anche il motivo per cui non hai trovato alcuna soluzione “standard” – perché non ce n’è.