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

Linux kernel 使用debian内核包分析崩溃转储,linux-kernel,debian,crash-dumps,Linux Kernel,Debian,Crash Dumps,我试图分析Linux内核崩溃转储。内核是由4.4.77树构建的,上面有一些定制的包。构建内核的命令是make kpkg kernel\u image debug\u image,在两个不同的debian包中生成。其思想是第一个包在生产中运行,如果检测到问题,第二个包可以用于调试。因此,安装了“kernel_image”包,并将其配置为收集每个进程的崩溃,然后运行、崩溃并编写一个崩溃转储文件 我正在使用crash实用程序分析转储。运行 crash vmlinux file.dump 对于每输出未

我试图分析Linux内核崩溃转储。内核是由4.4.77树构建的,上面有一些定制的包。构建内核的命令是
make kpkg kernel\u image debug\u image
,在两个不同的debian包中生成。其思想是第一个包在生产中运行,如果检测到问题,第二个包可以用于调试。因此,安装了“kernel_image”包,并将其配置为收集每个进程的崩溃,然后运行、崩溃并编写一个崩溃转储文件

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

crash vmlinux file.dump
对于每输出未压缩的vmlinux文件

安装“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\u image”包中的可用信息分析“kernel\u image”中的转储


更新:显然系统的
makedumpfile
二进制文件对于4.4内核来说太旧了。在过去的某个时候,系统的内核从3.0升级到4.4,但所有用户模式的二进制文件都保持原样。不知何故导致了无效的崩溃转储。由于二进制不兼容,我无法安装较新的
makedumpfile
(属于
kdump工具
包的一部分)。在我在与用于为系统构建用户模式应用程序的开发环境相同的开发环境中重新构建了binary v 5.9之后,这个问题已经得到了解决。总之,
crash
指向“debug image”包中的
vmlinux
文件,该文件在最后对我起了作用

,错误消息清楚地表明,崩溃转储来自
4.8.4
版本的内核,并且您使用
4.4.77
版本中的调试信息。在你的位置,我会尝试安装安装
kernel-debuginfo-4.8.4
包,然后尝试找出你的生产内核是如何由
4.4.77
树构建的,它的崩溃转储是
4.8.4
版本我的解释是“4.8.4”是gcc版本而不是内核版本。是的,你是对的,我错过了,顺便问一下,你使用哪个
Crash
实用程序版本?它的旧版本包含一个bug,它阻止了使用linux 4.0崩溃转储。错误消息与您的消息完全相同:我正在使用新安装的崩溃7.1.7;我想它已经解决了这个问题。
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