Linux 会在打印消息时出错吗
我在内核代码中遇到了上的BUG。我想知道当时出了什么问题。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_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