lkml.org 
[lkml]   [2006]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] more helpful WARN_ON and BUG_ON messages
    After a few bugs I encountered in FC6 in buffer.c, with output like:

    Kernel BUG at fs/buffer.c: 2791

    where buffer.c contains:

    ...
    BUG_ON(!buffer_locked(bh));
    BUG_ON(!buffer_mapped(bh));
    BUG_ON(!bh->b_end_io);
    ...

    around line 2790, it's awfully tedious to go get the exact failing kernel tree
    just to see -which- BUG_ON was encountered.

    Printing out the failing condition as a string would make this more helpful IMHO.

    This is mostly just compile-tested... comments?

    Signed-off-by: Eric Sandeen <sandeen@redhat.com>

    Index: linux-2.6.18/include/asm-generic/bug.h
    ===================================================================
    --- linux-2.6.18.orig/include/asm-generic/bug.h
    +++ linux-2.6.18/include/asm-generic/bug.h
    @@ -12,13 +12,19 @@
    #endif

    #ifndef HAVE_ARCH_BUG_ON
    -#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
    +#define BUG_ON(condition) do { \
    + if (unlikely((condition)!=0)) { \
    + printk("BUGging on (%s)\n", #condition); \
    + BUG(); \
    + } \
    +} while(0)
    #endif

    #ifndef HAVE_ARCH_WARN_ON
    #define WARN_ON(condition) do { \
    if (unlikely((condition)!=0)) { \
    - printk("BUG: warning at %s:%d/%s()\n", __FILE__, __LINE__, __FUNCTION__); \
    + printk("BUG: warning: (%s) at %s:%d/%s()\n", \
    + #condition, __FILE__, __LINE__, __FUNCTION__); \
    dump_stack(); \
    } \
    } while (0)

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-10-20 18:27    [W:0.044 / U:1.120 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site