5

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

在关于 Valgrind 的章节中,“你应该看到的”部分有各种 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,我如何确保不会意外地使机器变砖(即因为构建错误的包并触发库不兼容)?

4

1 回答 1

11

在 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 调试信息存储库已经过时了- of-date 对最新包的尊重。您可能会或可能无法找到适合 CentOS 6 的 debuginfo 软件包。

于 2012-04-27T14:44:36.500 回答