Linux 会在打印消息时出错吗

Linux 会在打印消息时出错吗,linux,debugging,linux-kernel,Linux,Debugging,Linux Kernel,我在内核代码中遇到了上的BUG。我想知道当时出了什么问题。 BUG_ON将检查该情况,如果为真,则会死机 BUG\u ON会在/var/log/messages中打印消息吗? 它会打印在恐慌前检查的值吗?是。发件人: 如果您的内核被正确编译,上的BUG\u将在恐慌之前打印一条消息。是。发件人: 如果内核被正确编译,上的BUG\u将在恐慌之前打印消息。大多数情况下,消息不会被记录到/var/log/messages。您将能够查看是否已在机器中配置串行控制台。如果您想了解更多详细信息,可能需要添加p

我在内核代码中遇到了上的BUG。我想知道当时出了什么问题。
BUG_ON
将检查该情况,如果为真,则会死机

BUG\u ON
会在/var/log/messages中打印消息吗? 它会打印在恐慌前检查的值吗?

是。发件人:

如果您的内核被正确编译,上的BUG\u将在恐慌之前打印一条消息。

是。发件人:


如果内核被正确编译,上的BUG\u将在恐慌之前打印消息。

大多数情况下,消息不会被记录到/var/log/messages。您将能够查看是否已在机器中配置串行控制台。如果您想了解更多详细信息,可能需要添加printk并重新编译内核

或者你可以收集一个vmcore来获得更多关于恐慌的细节


这适用于suse或rhel。对于其他操作系统,它们可能具有类似的机制

消息在大多数情况下不会记录到/var/log/messages。您将能够查看是否已在机器中配置串行控制台。如果您想了解更多详细信息,可能需要添加printk并重新编译内核

或者你可以收集一个vmcore来获得更多关于恐慌的细节


这适用于suse或rhel。对于其他操作系统,它们可能具有类似的机制

请注意,消息可能不会被记录到
/var/log/messages
,因为这需要系统继续运行足够长的时间,以便记录器将其写入磁盘。死机几乎会立即杀死系统。请注意,消息可能不会被记录到
/var/log/messages
,因为这需要系统继续运行足够长的时间,以便记录器将其写入磁盘。恐慌几乎立即摧毁了整个系统。
#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