【问题标题】:How to install glibc with debugging info on CentOS 5.5如何在 CentOS 5.5 上安装带有调试信息的 glibc
【发布时间】:2012-05-08 07:33:12
【问题描述】:

我正在学习 Zed Shaw 的 Learn C the Hard Way。

在关于 Valgrind 的章节中,"What you should see" 部分包含各种 glibc 函数的行号。

我已经确定(显然)我的 CentOS 5.5 安装了非调试 glibc。但是 yum 没有列出 glibc-dbg (或类似的东西:

[nzucker:~/projects/lcthw]$ yum info \*glibc\* | grep Name
Name       : glibc
Name       : glibc
Name       : glibc-common
Name       : glibc-devel
Name       : glibc-devel
Name       : glibc-headers
Name       : compat-glibc
Name       : compat-glibc
Name       : compat-glibc-headers
Name       : glibc-utils

过去,我通过随意安装软件包(通过软件包或从源代码构建)使 Linux 机器变砖,所以我想知道我在这里做什么。

问题:

  1. 由于我已经安装了 glibc-devel,调试库是否已经存在,我只需要链接到它们和/或添加编译开关?

  2. 如果我在启用调试的情况下从源代码重新构建 glibc(或安装包),我如何确保不会意外损坏机器(即因为构建错误的包并触发库不兼容)?

【问题讨论】:

    标签: c centos glibc


    【解决方案1】:

    在 CentOS 下,您可以使用 debuginfo-install 命令安装特定软件包的调试信息。例如:

    debuginfo-install glibc
    

    为此,您需要定义 debuginfo 存储库。对于 CentOS 5,请将以下内容放入 /etc/yum.repos.d/CentOS-Base-debuginfo.repo

    [base-debuginfo]
    name=CentOS-$releasever - DebugInfo
    baseurl=http://debuginfo.centos.org/$releasever/$basearch/
    gpgcheck=0
    enabled=0
    protect=1
    priority=1
    

    警告:如果你从 Google 那里找到了有关 CentOS 6 信息的方法:这对 CentOS 5 非常有用。CentOS 团队很难与 CentOS 6 一起行动,而 CentOS 6 的 debuginfo 储存库相对于最新的软件包来说已经过时了。你不一定能找到适合 CentOS 6 的 debuginfo 包。

    【讨论】:

    • 这样做会导致依赖地狱/与其他库不兼容的可能性有多大?
    • 如果您使用正确的工具(即yum 和相关实用程序,如debuginfo-install)从正确的存储库安装软件包,您永远不应该遇到“依赖地狱”。发现自己在与依赖问题作斗争通常意味着你做错了什么。安装debuginfo 包通常应该不会影响系统的运行;您既没有安装二进制文件、库也没有配置文件。
    • 也许我在这里有点密集,但是:debuginfo-install glibc 产生 debuginfo-install: command not found - 我在 CentOS 5.5 上
    • debuginfo-installyum-utils 包的一部分。如果你不知道哪个包包含命令,你可以试试yum install /usr/bin/debuginfo-install之类的,yum会帮你找到的(假设你想要的包在/usr/bin
    猜你喜欢
    • 2011-03-27
    • 2011-07-22
    • 1970-01-01
    • 2011-03-25
    • 2015-04-13
    • 2011-05-25
    • 2012-03-18
    • 2013-09-04
    • 2011-04-16
    相关资源
    最近更新 更多