缺少单独的调试信息,使用: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-installyum-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-的主要内容,如果未能解决你的问题,请参考以下文章

视图中的 MVC4 模型问题:在调试模式下模型缺少详细信息

此模块的调试信息中缺少源信息 - PDB 已成功加载

LLDB - Qt 缺少调试信息

如何将内核调试信息构建为单独的文件?

gnu ld/gdb:单独的调试文件。当需要链接的调试信息过多时如何生成调试文件?

使用 mfc 的 EXE(调试)无法在其他 PC 上运行