如何解析dmesg日志的内核核心转储



我想读取内核核心文件中存在的dmesg日志。通常的方法是使用类似crash的实用程序来打开具有相应vmlinux的核心文件。

如果我没有错的话,从核心文件读取dmesg日志没有符号依赖性,因此也没有vmlinux依赖性。

其次,运行中的系统可能没有任何可用于打开核心文件的实用程序。因此,我想实现我自己的脚本/实用程序,它可以将核心文件作为普通文件打开,并对其进行解析以转储dmesg日志。

有可能吗?如果是,核心文件的格式是什么,这样我就可以定位dmesg的开始和结束位置?

crash工具在其交互式提示中有命令log来显示内核消息缓冲区(分析核心转储(。您将在crash-utility/crash下找到源,并可以继续搜索log_buf

核心文件的格式是什么,这样我就可以定位dmesg的开始和结束位置

看起来">核心转储文件格式使用ELF格式,但在ELF标准中没有描述";

您还可以找到";如何分析Linux内存或核心转储";在Volatility框架中,它是用Python编写的。例如,搜索dmesg

我不认为coredump文件中有内核日志,如果它有strings,就应该打印出来。我认为crash所做的是将内核环形缓冲区中的内容打印给用户(如果有的话(。通常,当内核出现故障时,内核会将一些有用的信息放入内核环形缓冲区,但这不适用于用户空间应用程序。

coredump只是一个ELF文件,其中包含一些额外的数据,如果您想解析ELF格式,您必须查看规范或使用工具/库。

相关内容

  • 没有找到相关文章

最新更新