linux中的BUG_ON和WARN_ON主要用于调试作用。

一. BUG_ON
  #define BUG_ON(condition) do { /
     if (unlikely((condition)!=0)) /
BUG(); /
  } while(0)
  如果觉得该condition下是一个BUG,可以添加此调试信息,查看对应堆栈内容。
  二. WARN_ON

而WARN_ON则是调用dump_stack,打印堆栈信息,不会OOPS

#define WARN_ON(condition) do { /

if (unlikely((condition)!=0)) { /

printk("Badness in %s at %s:%d/n", __FUNCTION__, __FILE__, __LINE__); /

dump_stack(); /

} /

} while (0)