linux - 将 BUG_ON 打印消息

标签 linux debugging linux-kernel

我在内核代码中遇到了 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/

相关文章:

linux - 显着性模型 - BMS(设置错误)

apache-flex - 等待 Flash 播放器连接到调试器

c - 可用于 sysfs 读取的最大字节数

c - Linux 上的用户空间串行通信库

java - 如何设置java时区?

linux - 在 linux 中通过代理代理

c - 在 C 中解析正则表达式

unit-testing - 什么是谓词检查?

C# 组合框仅在调试中设置

linux - 详解mkmakefile生成的Makefile(Linux内核、buildroot、busybox)