使用debian内核包分析崩溃转储

时间:2018-02-27 00:52:01

标签: linux-kernel debian crash-dumps

我正在尝试分析Linux内核崩溃转储。内核是由4.4.77树构建的,其中包含一些自定义包。构建内核的命令是make-kpkg kernel_image debug_image,产生2个不同的debian包。我们的想法是第一个包在生产中运行,如果检测到问题,第二个包可用于调试。因此安装了“kernel_image”软件包,配置为每instructions收集崩溃,运行,崩溃并写入崩溃转储文件。

我正在使用crash实用程序来分析转储。运行

crash vmlinux file.dump

对于每个instructions输出未压缩的vmlinux文件

crash: vmlinux: no .gnu_debuglink section
crash: vmlinux: no debugging data available

安装“debug_image”包不会改变它。

我注意到“debug-image”包中包含自己的vmlinux文件;它在安装时放在/usr/lib/debug/lib/modules/4.4.77+/中。运行

crash /usr/lib/debug/lib/modules/4.4.77+/vmlinux file.dump

输出

WARNING: kernels compiled by different gcc versions:
  /usr/lib/debug/lib/modules/4.4.77+/vmlinux: (unknown)
  dump.201802261029 kernel: 4.8.4

WARNING: kernel version inconsistency between vmlinux and dumpfile

crash: incompatible arguments: 
   /usr/lib/debug/lib/modules/4.4.77+/vmlinux is not SMP -- dump.201802261029 is SMP

我错过了什么?是否可以利用“debug_image”包中提供的信息从“kernel_image”分析转储?

更新:显然系统的makedumpfile二进制文件对于4.4内核而言太旧​​了。在过去的某个时刻,系统的内核从3.something更新到4.4但所有用户模式的二进制文件都保持不变。这不知何故导致无效的崩溃转储。由于二进制不兼容,我不能apt-get install更新makedumpfilekdump-tools包的一部分)。在我用于为系统构建用户模式应用程序的相同开发环境中重新构建makedumpfile二进制v 5.9之后,问题已得到解决。总结一下,crash指向vmlinux来自" debug-image"包裹最后为我工作

0 个答案:

没有答案