2012-04-27 83 views
3

我正在通過Zed Shaw的Learn C the Hard Way。如何在CentOS 5.5上安裝帶有調試信息的glibc

在Valgrind的章節中,"What you should see"部分有各種glibc函數的行號。

我確定(很明顯)我的CentOS 5.5安裝了非調試glibc安裝。但百勝不會列出的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(或者安裝了一個包),我怎麼能確保不會意外地弄壞機器。因爲構建錯誤的包並觸發庫不兼容)?

回答

10

在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 

買者:如果你發現這裏從谷歌自己的方式尋找有關CentOS 6的信息:這個偉大的工程爲CentOS 5 CentOS的團隊已經有一個很難與CentOS 6一起行動,而CentOS 6 debuginfo存儲庫與最新的軟件包是過時的。您可能會也可能不會找到適用於CentOS 6的適當的debuginfo軟件包。

+0

這樣做的可能性會導致依賴性地獄/與其他庫不兼容的可能性是什麼? – noahlz 2012-04-27 15:19:32

+0

如果您使用適當的工具(例如,'yum'和相關的實用程序,如'debuginfo-install')從適當的存儲庫安裝軟件包,則不應該遇到「依賴地獄」。發現自己對付依賴問題通常意味着你做錯了什麼。安裝'debuginfo'軟件包通常不會影響系統的運行;你既沒有安裝二進制文件,庫,也沒有配置文件。 – larsks 2012-04-27 15:50:24

+1

也許我在這裏有點密集,但: 'debuginfo-install glibc'產生'debuginfo-install:command not found' - 我在CentOS 5.5 – noahlz 2012-05-01 21:28:06