[lkml]   [2000]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Universal debug macros.
    On Mon, 27 Nov 2000, Andrew E. Mileski wrote:

    > Elmer Joandi wrote:
    > >
    > > Now if there would be simple _unified_ system for switching debug code
    > > on/off, it would be a real win. That recompilation-capable enduser would
    > > not need much knowledge to go "General Setup" or newly created
    > > "Optimization" section and switch debugging off/on for _all_ network
    > > drivers or ide drivers for example.
    > Reminds me ... <linux/kernel.h> has a "#if DEBUG" statement that blows
    > up if the debug code does something like "#define DEBUG(X...) printk(X...)".
    > I came across this recently (think I was debugging PCI code ... not sure).
    > Changing it to "#ifdef DEBUG" avoids problems.
    > --
    > Andrew E. Mileski - Software Engineer

    I find that the following works fine:

    #ifdef DEBUG
    #define DEB(f) f
    #define DEB(f)


    DEB(printk("Lots of stuff, %s, %d, %d, %d\n", string, int0, int1, int2));

    In this case, if DEBUG is defined, printk() with its variable-length
    parameter list is compiled.

    If not, nothing is compiled, everything inside DEB() is simply ignored.

    This means that the macros do not, themselves, have to handle variable-
    length parameter lists. The preprocessor only handles text as it was
    designed to do.

    Dick Johnson

    Penguin : Linux version 2.4.0 on an i686 machine (799.54 BogoMips).

    "Memory is like gasoline. You use it up when you are running. Of
    course you get it all back when you reboot..."; Actual explanation
    obtained from the Micro$oft help desk.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 12:47    [W:0.022 / U:34.876 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site