Linux - gdb使用自定义路径下的debuginfo文件(夹)

Posted 王万林 Ben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux - gdb使用自定义路径下的debuginfo文件(夹)相关的知识,希望对你有一定的参考价值。

Linux - gdb使用自定义路径下的debuginfo文件(夹)

问题

IC集群环境,通常用于跑IC业务,不用作普通的程序开发与调试。用于调试的包不是必备的包,出于精简的目的没有被(root)安装上,因此大部分程序开发的调试工作在普通运算机上无法完成。

gdb在无相关debuginfo包时的报错

Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6.x86_64 libaio-0.3.107-10.el6.x86_64 libgcc-4.4.6-3.el6.x86_64 libstdc++-4.4.6-3.el6.x86_64 libuuid-2.17.2-12.4.el6.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64

普通用户在没有root的情况下,如何使用debuginfo相关文件?

思路

步骤

  1. 下载相关debuginfo相关包
  2. 传到集群的运算机
  3. 安装debuginfo相关包到自定义路径
  4. 运行gdb并制定自定义路径下的debuginfo包

下载

使用联网的、与运算机相同OS版本的服务器,配置好debuginfo yum repo,然后执行

debuginfo-install --downloadonly --downloaddir=/path/to/tmp/seperate_debuginfo_dir <package>

将需要的包以及其依赖包下载下来。

安装

根据这里介绍,安装有两种方式,

  • 一种是rpm -i --prefix=/path/to/seperate_debuginfo_dir <all_rpm_packages>。由于有些rpm包是不可安装到指定目录下的,本方法不适用本需求;
  • 一种是使用rpm2cpio与cpio -id命令将所有rpm包解压出来,并放到/path/to/seperate_debuginfo_dir下。

使用

启动gdb后,按照官网介绍,设置变量后即可,如下所示

$ gdb
(gdb) set debug-file-directory /path/to/seperate_debuginfo_dir
(gdb)

总结

在集群中,普通运算机为了精简,调试包等不必要的非众包,基本上不装,以保持普通运算机的高效。这个时候要看如何能够安装到非默认路径,并且指定该路径。
按照这个思路找资料,来满足用户的需求。

以上是关于Linux - gdb使用自定义路径下的debuginfo文件(夹)的主要内容,如果未能解决你的问题,请参考以下文章

Linux下的gdb调试

linux下GDB的使用方法

Linux GDB程序调试工具使用简介

在vscode中使用gdb调试

Linux gdb调试器用法全面解析

linux中gdb的可视化调试