You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从源码构建内核调试符号(Ubuntu 20.04、v5.15.0内核)

从源码构建内核调试符号(-dbg包)用于Kdump和Crash调试

针对你从源码编译的v5.15.0内核,以下是构建对应调试符号的步骤,适配Ubuntu 20.04环境:

1. 确认内核编译配置

进入你的v5.15.0内核源码目录,确保开启调试相关配置:

  • 执行make menuconfig,勾选以下选项:
    • CONFIG_DEBUG_INFO=y(生成完整调试信息)
    • CONFIG_DEBUG_INFO_BTF=y(可选,为Crash提供BTF类型信息支持)
    • CONFIG_KEXEC_CORE=y和CONFIG_CRASH_DUMP=y(Kdump功能必需)
  • 若已编译过内核,可直接修改.config文件添加上述配置,再执行make olddefconfig自动补全依赖配置

2. 编译内核并生成调试符号

  • 编译内核(利用多核加速,nproc获取CPU核心数):
    make -j$(nproc)
    
  • 生成Ubuntu标准的deb格式调试符号包,执行:
    make deb-pkg DEBUG_INFO=y
    
    执行完成后,源码目录的上级目录会生成多个deb包,其中命名类似linux-image-5.15.0-xxx-dbg_xxx_amd64.deb的就是调试符号包(xxx为你的内核自定义后缀)
  • 若无需deb包,编译完成后,源码目录下的vmlinux文件本身已包含完整调试信息,可直接用于Crash调试

3. 安装调试符号

  • 安装生成的deb调试包:
    sudo dpkg -i ../linux-image-5.15.0-xxx-dbg_xxx_amd64.deb
    
  • 安装完成后,调试符号会被放置在/usr/lib/debug/boot/vmlinux-5.15.0-xxx路径下,Crash工具可自动识别该路径

4. 配合Kdump和Crash使用

  • 确保Kdump服务正常运行:
    sudo systemctl enable --now kdump-tools
    
  • 系统崩溃生成vmcore文件后,使用Crash调试的命令示例:
    crash /usr/lib/debug/boot/vmlinux-5.15.0-xxx /var/crash/[时间戳]/vmcore
    
  • 若直接使用源码目录下的vmlinux文件,命令为:
    crash ./vmlinux /var/crash/[时间戳]/vmcore
    

内容的提问来源于stack exchange,提问作者plznobug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:02:10