Search code examples
cdebugginglinux-kernelkernelprintk

Linux-kernel debug printouts?


Is there a better way to debug printouts in the Linux kernel?

Right now littering the code with:

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

Which isn't very clean.

There ought to be a way for the whole row to be #ifdef:ed in some nice way.


Solution

  • Use

    /* 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");
    

    as a basis (the standard practice). You can then add __FILE__ or __LINE__ to the pr_fmt definition if you need.