linux - 无法在 centos7 上为调试内核设置​​故障转储

标签 linux debugging linux-kernel crash centos7

我正在尝试设置 kdump 来为 kernel-3.10.0-123.el7 生成 vmcore。对于 perf 内核 kernel-3.10.0-123.el7.x86_64.rpm,我设置了 kdump,kdump 也工作正常,生成了 vmcore。 然后我安装了

kernel-debug-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

for perf kernel only not for debug kernel

所以来自 ~/rpmbuild/SOURCES

i copied linux-3.10.0-123.el7.x86_64.tar.xz and used kernel-3.10.0-x86_64-debug.config as .config to get vmlinux

当我使用这个新构建的 vmlinux 调试内核时崩溃,它抛出了内核版本不匹配的错误。现在我卡住了。

请帮助我使用调试内核和调试 vmlinux 在 centos7 上设置 kdump。

最佳答案

因为我是 centos 的新手,所以我不知道 debug pakages 有 vmlinux。我已经使用以下命令安装了调试 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 可与非调试内核一起使用。

关于linux - 无法在 centos7 上为调试内核设置​​故障转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989258/

相关文章:

linux - zsh 中修改当前完成选项的 compopt 等效项是什么?

linux - 为项目中的 Win 和 Linux 提供 SDL2 包含 header

linux - 如何捕获从无线路由器发送的探测请求数据或探测响应数据

c++ - 通过 Xcode 调试使用 CGAL 的代码

使用 "jdb -attach"(或 jswat)调试 Android 应用程序

linux - Qemu套接字通信

ruby-on-rails - 在 Ruby 中,如何编写一个方法来显示任何对象的实例变量名称及其值

c - 使用映射将数据从用户空间发送到 bpf 程序时出现问题

c - Linux Kernel - 为什么一个函数在 System.map 中的地址比实时看到的地址早一个字节?

linux-kernel - 为什么要从 O(1) 调度程序转移到 O(log N) 的 CFS?