如何在CentOS 5.5上安装带有调试信息的glibc

noa*_*hlz 4 c glibc centos

我正在通过Zed Shaw的艰难学习方式开展工作.

在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
Run Code Online (Sandbox Code Playgroud)

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

问题:

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

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

lar*_*sks 11

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

debuginfo-install glibc
Run Code Online (Sandbox Code Playgroud)

为此,您需要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
Run Code Online (Sandbox Code Playgroud)

警告:如果你从谷歌找到你的方式来查看CentOS 6的信息:这对CentOS 5来说非常有用.CentOS团队很难与CentOS 6一起行动,CentOS 6 debuginfo存储库也没有了 -对最近的包裹的约会.您可能或可能无法为CentOS 6找到合适的debuginfo包.

  • `debuginfo-install`是`yum-utils`包的一部分.如果您不知道哪个包包含一个命令,您可以尝试类似`yum install/usr/bin/debuginfo-install`,yum会为您找到它(假设您想要的包在`/ usr/bin中) `) (10认同)