在内核崩溃发生后,有没有办法获取内核以前的调试信息。
我正在尝试开发一个内核模块,它基本上捕获内核网络堆栈内的IP层中的IP数据包。经过一些修改后,我必须将相同的数据包发送回NIC进行传输。在所有这些过程中,我在 printk()的帮助下编写调试信息。但如果出现任何问题&发生内核故障所以我们必须重新启动系统。那么有没有办法得到我以前的调试信息,因为重启后调试信息不存在,因为我尝试通过 dmesg 命令获取它。
答案 0 :(得分:7)
实际上/ var / log / dmesg文件包含当前的引导打印消息日志。 /var/log/kern.log文件包含ubuntu中以前的引导内核打印消息日志。在其他Linux风格中,它将包含在fedora等的/ var / log / messages文件中。
答案 1 :(得分:4)
即使重新启动系统,也可以在/var/log/dmesg
个文件中查看内核日志消息。
dmesg.X会有这么多文件,这些文件是以前的内核日志。 dmesg
是最新文件。
答案 2 :(得分:2)
您可以尝试通过键盘或串行控制台输入magic SysRq键序列来与挂起的系统进行交互。
答案 3 :(得分:2)
Linux的最新版本支持crash dumps。如果成功,这些将包括完整的内存转储,包括内核日志消息和堆栈跟踪。
答案 4 :(得分:0)
实际上,崩溃信息(dmesg)存在于/ var / crash /中。 这里我们有每个系统崩溃的文件夹。文件夹名称如127.0.0.1-date-time。 vmcore-dmesg.txt存在于文件夹中。从这些文件中,我们得到了崩溃前执行的dmesg。
答案 5 :(得分:0)
GNOME Logs 是一个非常有用的软件。您可以将日志消息限制为最后一个会话,并轻松阅读崩溃前的最后一条消息。