我不知道它是否与SO有关。我知道当我使用Linux内核时 panic
函数,它的工作是卡住我的系统,但它需要一个参数,一条消息。如果我的系统完全卡住并且我通过按住电源关闭按钮强制关闭我的电脑,我实际上在哪里可以看到该消息?
main.c
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h> // panic
MODULE_LICENSE("GPL");
static int __init initialization_function(void)
{
panic("Module: my message!\n");
return 0;
}
static void __exit cleanup_funcion(void)
{
printk(KERN_INFO "Module: Cleanup done, exiting.\n");
}
module_init(initialization_function);
module_exit(cleanup_funcion);
顺便说一句,我不知道如何才能看到实际的 oops 消息,在哪里以及如何看到它?
最佳答案
它进入内核控制台,与 printk()
相同的位置。消息去。 Wikipedia article on kernel panic中有截图:
通常,如果内核崩溃发生在引导时,您将能够看到它。
至于如果你有一个正在运行的桌面系统会发生什么,不幸的是我不记得了。要么你看不到它,要么 X/Wayland 服务器会崩溃,你会在控制台中看到它的消息。
关于c - linux内核 panic 消息在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64099710/