无法在 centos7 上设置故障转储以调试内核
Posted
技术标签:
【中文标题】无法在 centos7 上设置故障转储以调试内核【英文标题】:could not to setup crash dump on centos7 for debug kernel 【发布时间】:2015-11-06 11:33:44 【问题描述】:我正在尝试设置 kdump 来为 kernel-3.10.0-123.el7 生成 vmcore。对于 perf 内核 kernel-3.10.0-123.el7.x86_64.rpm 我设置了 kdump 并且 kdump 也可以正常工作,生成 vmcore。 然后我安装了
内核调试-3.10.0-123.el7.x86_64.rpm
使用 yum install kernel-debug-3.10.0-123.el7.x86_64.rpm 和 kdump 工作正常。
但是我没有 vmlinux 来读取调试内核的 vmcore。 然后我使用 rpmbuild 从源代码构建源代码
kernel-3.10.0-123.el7.src.rpm
但我在
中看到了 vmlinux~/rpmbuild/BUILD/kernel-3.10.0-123.el7/linux-3.10.0-123.el7.x86_64/vmlinux
仅用于 perf 内核,不适用于调试内核
所以从 ~/rpmbuild/SOURCES
我复制了 linux-3.10.0-123.el7.x86_64.tar.xz 并使用了 kernel-3.10.0-x86_64-debug.config as .config 获取vmlinux
当我使用这个新构建的 vmlinux 调试内核崩溃时,它抛出了内核版本不匹配的错误。现在我被卡住了。
请帮助我在 centos7 上使用调试内核和调试 vmlinux 设置 kdump。
【问题讨论】:
你应该使用你的本机系统内核vmlinux,这是什么问题? kernel-3.10.0-123.el7.x86_64.rpm 默认内核是centos7自带的...我在虚拟机上安装了centos7的另一件事 【参考方案1】:由于我是 centos 新手,我不知道调试包有 vmlinux。我已经使用以下命令安装了调试 rpm:
yum --enablerepo=debug install kexec-tools crash kernel-debug kernel-debuginfo-`uname -r`
我注意到 kernel-debuginfo-3.10.0-123.el7.x86_64 的位置有 vmlinux:
/usr/lib/debug/lib/modules/3.10.0-123.el7.x86_64/vmlinux
所以我得到了 vmlinux。
此 vmlinux 可与非调试内核一起使用。
【讨论】:
以上是关于无法在 centos7 上设置故障转储以调试内核的主要内容,如果未能解决你的问题,请参考以下文章