我在内核代码中遇到了 BUG_ON
。我想知道当时出了什么问题。
BUG_ON
将检查条件,如果条件为真,它会崩溃。
BUG_ON
会打印/var/log/messages 中的消息吗?
它会在 panic 之前打印它正在检查的值吗?
最佳答案
是的。来自 include/asm-generic/bug.h :
#ifndef HAVE_ARCH_BUG
#define BUG() do { \
printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \
panic("BUG!"); \
} while (0)
#endif
#ifndef HAVE_ARCH_BUG_ON
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0)
#endif
如果您的内核编译正确,BUG_ON
将在 panic 之前打印一条消息。
关于linux - 将 BUG_ON 打印消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793502/