Linux的3个debug rpm包有什么区别kernel-debuginfo-common、kernel-debuginfo、kernel-debug-debuginfo?(源码、库、库)

快速回忆

  • debuginfo-common是源码,安装在/usr/src下面,提供gdb crash等命令查看源码
  • debuginfo是库,安装在/usr/lib下面,主要提供vmlinux
  • debug-debuginfo是debug版本linux的debuginfo库,本质是库同2

巩固:

  • vmlinux什么提供?在哪个目录(安装debuginfo的包、/usr/lib)
  • 想看linux的源码,怎么办?在哪个目录?(安装debuginfo-common的rpm包、/usr/src)
    注意都在/usr目录下,并且src和lib几乎算是官方地带了。

前言

kdc、kd、kdd是什么?另外我们为什么要知道这些?
举个例子,当我想用crash或者gdb 查看vmlinux,来定位crash问题的时候,需要安装debuginfo包。并且放到了/usr/lib下
再举个例子,我们需要用crash种的dis或者gdb的l,以及想用add2line查看某个crash地址所在行,并且显示代码,就需要用src,那么就需要debuginfo-common提供源码。并且放到了/usr/src下
再有甚者想查看本内核编译的详细内核代码,由于开源下载的kernel代码只有大版本号不一定是编译的内核,所以有了这个编译的内核,就能查看所有源码,甚至重新编译

要点:

  • kernel-debuginfo-common 主要是编译linux的与架构无关的,本质就是源码。主要就是提供源码

    • rpm会安装到 /usr/src/debug/下的kernel中,注意大本营是usr的src下面,说明本质是src是代码
    • 包括编译内核所有的源码
    • 主要作用在用vmlinux定位的时候,可以获取到源码,进而可以用crash的dis等方式查看到出现问题在哪一行,包括addr2line都是很有用的
  • kernel-debuginfo 主要是vmlinux、所有的ko等,会copy文件到

    • rpm会安装到 /usr/lib/deubug/下的lib和src,注意大本营是usr的lib下面,说明本质是lib是库,所以架构相关
    • lib是vmlinux和所有ko。
  • kernel-debug-debuginfo 是debug版本linux的debuginfo库,本质是库,同kernel-debuginfo

其他:

  • 注意为什么
  • /lib/module/$(uname -r)/build这个目录是用来编译内核模块指定linux src编译路径的不是这里提到的debuginfo。如下是编译某个linux内核模块指定kernel dir的方式,和前面这里提的不一样
KERNEL=/lib/modules/$(shell uname -r)/build
modules:
	make -C $(KERNEL) M=`pwd` modules

这个参考兄弟篇详细介绍/lib/modules中的代码以及 /usr/src/kernel的代码的关系,以及kernel-devel的rpm包与kernel-debug-common关系:https://blog.csdn.net/essencelite/article/details/137846894
简单梳理:
kernel-devel 安装到 /usr/src/kernel 被软连接到/lib/modules/$(uname -r)/build #为什么要一个lib软连接,因为可能多个内核版本需要一个壳, 是库+源文件。
kernel-header 安装到 /usr/include,是源文件。
kernel-debuginfo 安装到了 /usr/lib/debug/lib/xxx 是库。在lib库的debug下面
kernel-debuginfo-common 安装到了 /usr/src/debug/xxx 是代码。在src源码的debug下面

实际例子:

yum源列出的mirror上的rpm包:(注意yum本质只是一个包管理框架,包本质都是这些rpm包)
在这里插入图片描述

kernel-debuginfo-common

在这里插入图片描述

kernel-debuginfo

在这里插入图片描述

参考下载例子:
https://mirrors.openanolis.cn/anolis/8.6/BaseOS/x86_64/debug/Packages/
另外安装方法参考兄弟篇文章:https://blog.csdn.net/essencelite/article/details/137713050

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值