2009-10-28 53 views
1

當我在Gentoo上構建軟件包時。我得到這個警告'-ggdb3'標誌可以'打破軟件包。如何包含GDB調試符號'break package'?

我還沒有找到什麼時候這是真的一個實例。雖然我曾經發現一些代碼在不同的優化設置下破解,但這不同於包含調試符號。

有些人可以提供一個代碼的例子,它可以在沒有調試符號的情況下進行編譯,並且不會在運行時編譯(或者在運行時以其他方式出錯)?

回答

1

在「過去的日子」裏,我從Scratch系統構建了一個完整的Linux,併爲每個二進制文件進行調試。當然,安裝量要大得多,內存使用率並不理想,但我從來沒有遇到任何問題,無論是編譯還是後續執行。

很難證明一個消極的東西,一個人不能通過軼事,但作爲第二臺桌面/玩具服務器運行這一年會導致我斷定這不是一個問題。

我認爲你得到的標誌是一個標準的警告,如果你設置的USE標誌沒有被測試,或者它並非真正意義上的安裝,那麼這個標準警告就是一個包在Gentoo中會給出的。只要你知道旗幟是什麼---在這種情況下,你似乎......並且你沒有把它放在任何「任務關鍵」設置中(即,如果出現問題,你會受到指責)似乎是安全的忽略這些警告。

+0

的情況從來就不是這樣 - 在你的CFLAGS中犯錯並不會引起麻煩,但這是另一回事;-) – 2010-03-22 21:21:13

+0

@Chris我現在很開心地使用FreeBSD,因爲我發現Gentoo的原因沒有麻煩的結束,但這也是另外一個故事......;) – Dmitri 2011-06-19 17:25:56

1

由於包含了調試符號,我從來沒有一次測試失敗(或者更少的包打破)。在處理PPC時,我只被優化錯誤咬傷。

但是,您必須考慮您正在構建的內容。如果可執行文件將被複制到initrd之類的文件中,通常希望它可以被剝離(或者在沒有調試符號的情況下編譯),特別是在靜態鏈接的情況下。

+0

什麼是ppc?你不是指「按點擊付費」嗎? – 2009-10-29 09:21:06

+0

@Chris Huang-Leaver:http://refspecs.freestandards.org/LSB_1.3.0/PPC32/spec/book1.html(即PowerPC ..那些在摩托羅拉的聰明人想出的東西)? – 2009-10-29 09:53:33

+0

@tinkertim IC,我唯一能想到的就是這個http://stackoverflow.com/questions/768588/,我認爲這是Solaris的編譯器問題。 – 2009-10-29 10:14:08

-2

有時當您打開調試符號時,它實際上會更改編譯器生成的代碼,在這種情況下,始終存在從「正確的代碼」到「不正確的代碼」的可能性。

我不知道「-ggdb3」啓用了哪些特定更改,但也許這就是您要提醒的。

+0

GCC,AFAIK – Hasturkun 2009-10-28 17:10:38