缺少单独的调试信息,使用:debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-
Posted
技术标签:
【中文标题】缺少单独的调试信息,使用:debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686【英文标题】:Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686 【发布时间】:2012-05-10 12:35:47 【问题描述】:CentOS 6.2 + GNU gdb (GDB) Red Hat Enterprise Linux (7.2-50.el6)
当我使用 GDB 调试一个简单的 c++ 代码时,我看到了以下警告:
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686
我尝试了以下方法,但都没有解决问题:
搜索所以
yum install glibc
debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686
其实,当我一一安装那些 RPM 时,我才发现它们已经安装好了。
[root@localhost Excluded]# rpm -ivh glibc-2.12-1.47.el6_2.9.i686.rpm
Preparing... ########################################### [100%]
package glibc-2.12-1.47.el6_2.9.i686 is already installed
[root@localhost Excluded]# ls *.rpm
glibc-2.12-1.47.el6_2.9.i686.rpm libgcc-4.4.6-3.el6.i686.rpm
[root@localhost Excluded]# rpm -ivh libgcc-4.4.6-3.el6.i686.rpm
Preparing... ########################################### [100%]
package libgcc-4.4.6-3.el6.i686 is already installed
[root@localhost Excluded]# rpm -ivh libstdc++-4.4.6-3.el6.i686.rpm
warning: libstdc++-4.4.6-3.el6.i686.rpm: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
Preparing... ########################################### [100%]
package libstdc++-4.4.6-3.el6.i686 is already installed
file /usr/lib/libstdc++.so.6.0.13 from install of libstdc++-4.4.6-3.el6.i686 conflicts with file from package libstdc++-4.4.6-3.el6.i686
为什么 GDB 找不到?
问题:我需要担心这个问题吗?如果没有,如何关闭它?如果是,如何解决?
谢谢
【问题讨论】:
我已经安装了 CentOS 5.6 和 5.8。两者都没有这样的问题。 debuginfo-install 由于某种原因无法正常工作。这为我修复了它:sudo yum --nogpgcheck --enablerepo=debug install glibc-debuginfo 有些相关:unix.stackexchange.com/q/148652/5510 【参考方案1】:接受答案的顺序对我不起作用。
我遵循了 cmets 中的一些提示,这是我在全新安装的 CentOS 7.2 中尝试和成功的方法
-
根据@lkraav 的评论,我关注了这个wiki https://wiki.centos.org/AdditionalResources/Repositories/DebugInfo 并创建了一个新文件。
以下内容可以附加到
/etc/yum.repos.d/CentOS-Base.repo
或创建的新文件,例如/etc/yum.repos.d/CentOS-Debug.repo
。
我将这些内容从 wiki 粘贴到新的 /etc/yum.repos.d/CentOS-Debug.repo
文件中,但将 enabled=0
行编辑为 enabled=1
我debuginfo-install
gdb 警告中显示的所有内容并成功安装。
【讨论】:
【参考方案2】:万一其他人遇到同样的问题,
我更新了 glibc,不知何故旧的 ldconfig 已被刷新 运行应用程序时遇到此错误
加载共享库时出错:libjson-c.so.2: cannot open shared object file: No such file or directory
即使设置了LD_LIBRARY_PATH
,它也不起作用:
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
下面的命令终于派上用场了。
// Add you library path here.
echo /usr/local/lib >> /etc/ld.so.conf
// And then Run ldconfig to reflect the path
ldconfig
【讨论】:
这看起来是我解决问题所需要的,但你能更清楚地说明你建议我做什么吗?【参考方案3】:debuginfo-install
是yum-utils
的命令,所以
yum install yum-utils
debuginfo-install glibc
如果警告仍然存在,编辑/etc/yum.repos.d/CentOS-Debuginfo.repo
,设置enabled=1
【讨论】:
我一定要启用 CentOS-Debuginfo.repo。谢谢。 您还需要在CentOS-Debuginfo.repo
(source) 中设置gpgcheck=0
。
对于 dnf,sudo dnf install dnf-plugins-core
按照 bugzilla.redhat.com/show_bug.cgi?id=1121318,然后是 sudo dnf debuginfo-install ...
如果有人知道如何在 RHEL7 中执行第 3 步?我只有 epel.repo、epel-testing.repo、redhat.repo 文件
如果你没有在/etc/yum.repos.d
中定义的debuginfo
repo,wiki.centos.org/AdditionalResources/Repositories/DebugInfo 帮了我一把。以上是关于缺少单独的调试信息,使用:debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-的主要内容,如果未能解决你的问题,请参考以下文章