gdb调试时的问题Missing separate debuginfos, use: debuginfo-install glibc-XXX

在CentOS6.4上使用gdb调试时遇到'Missing separate debuginfos'问题,提示需要安装特定版本的glibc debuginfo。尝试根据提示通过debuginfo-install命令安装glibc-2.12-1.132.el6.i686,但安装过程遇到问题。这阻碍了进一步的breaktrace调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在CentOS6.4下使用gdb进行调试的时候,

使用bt(breaktrace)命令时,会弹出如下的提示:

头一天提示:

Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.i686

问题没解决,第二天提示:

Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6.i686

但是直接按提示使用 debuginfo-install glibc-2.12-1.132.el6.i686 去安装的时候会报如下的信息:

Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: mirrors.yun-idc.com
 * extras: mirrors.yun-idc.com
 * updates: mirrors.yun-idc.com
Checking for new repos for mirrors
No debuginfo packages available to install

使用yum来进行安装:

 sudo yum --nogpgcheck --enablerepo=debug install glibc-debuginfo
却提示:Error Downloading Packages:
  glibc-debuginfo-common-2.12-1.132.el6.i686: failure: glibc-debuginfo-common-2.12-1.132.el6.i686.rpm from debug: [Errno 256] No more mirrors to try.
使用yum install 
在Ubuntu上使用GDB调试程序,如果遇到类似 `Missing separate debuginfos` 的错误提示,这通常是因为缺少目标库或二进制文件对应的调试信息。这些调试信息可以帮助GDB更好地理解代码结构、变量位置等细节。 ### 错误原因分析 该错误表示系统中缺失了特定版本的glibc、libgcc 和 libstdc++ 等依赖包的调试符号信息(debug info)。这是因为大多数Linux发行版为了减少安装包大小,默认只提供运行所需的二进制文件,而不包含详细的调试信息。 解决此问题需要手动安装相关的“调试信息”软件包。 --- ### 解决方案 #### 步骤 1:确认操作系统环境 首先,检查当前使用的操作系统及架构是否匹配所需调试信息包的要求: ```bash uname -a # 查看内核及相关版本信息 lsb_release -a # 如果有命令可用,则显示具体的 Ubuntu 版本号 ``` 注意:您提到的是 CentOS/RHEL 风格的包名(如 `.el7_9.x86_64`),而您的问题是基于 Ubuntu 发行版的环境,因此建议明确确认实际操作系统的兼容性。如果是跨平台尝试加载RPM风格的CentOS依赖到Debian系(Ubuntu)下,可能会导致更多复杂的问题。 #### 步骤 2:启用Debug Symbol Repository 对于标准的Ubuntu衍生品来说,并非直接采用CentOS那样的`debuginfo-install`工具流程。我们需要通过添加源的方式来获取deb形式的调试符号: 编辑 `/etc/apt/sources.list.d/debug-symbols.list` 文件并加入以下内容: ```text deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse deb http://ddebs.ubuntu.com $(lsb_release -cs)-security main restricted universe multiverse deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse ``` 接着更新APT缓存数据以便后续步骤能够识别新的仓库资源: ```bash sudo apt-get update ``` #### 步骤 3:查找并安装相关 Debug Package 例如,针对glibc可以这样做: ```bash sudo apt-get install libc6-dbg ``` 其他必要组件像GCC的标准C/C++库也可以一并搜索安装其dbg变体,比如`libgcc1-dbg`, 或者`libstdc++6-dbg`. --- ### 其他注意事项 有即使完成了上述所有配置仍然无法解决问题,因为某些第三方应用程序自带静态链接库并没有公开发布配套DEBUG INFO的情况存在;此只能依靠上游开发者提供的支持文档寻找替代办法。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值