我正在尝试设置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构建源代码
内核3.10.0-123.el7.src.rpm
但我在
中看到了vmlinux〜/的rpmbuild / BUILD /内核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 to get vmlinux
当我使用这个新构建的vmlinux进行调试内核崩溃时,它引发了内核版本不匹配的错误。现在我被卡住了。
请帮我在centos7上用调试内核设置kdump& debug vmlinux。
答案 0 :(得分:2)
由于我是centos的新手,我不知道调试pakages有vmlinux。我使用以下命令安装了debug rpms:
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适用于非调试内核。