2014-03-04 48 views
1

我有一個較大的C++程序,有很多我想要調試的模板。不幸的是gdb需要幾分鐘的時間來閱讀這些符號。libtool減慢gdb

http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html包含很多調試選項。

你會建議哪些選項可以使gdb更快/更實用。

更新:它看起來像減速是由libtool引起的。如果通過libtool啓動gdb - 模式執行它很慢。如果gdb啓動gdb .libs/foo,這是合理的。任何想法爲什麼要慢得多?

更新:另一項建議是-fvisibility =隱見http://gcc.gnu.org/wiki/Visibility

+0

我很驚訝GDB索引(https://sourceware.org/gdb/onlinedocs/gdb/Index-Files.html)沒有被提及?你的第一個調試符號的加載速度與往常一樣緩慢,但通過'save gdb-index'命令和一些'objcopy'魔法,你可以大大加快_subsequent_調試符號的加載速度。在你的版本中,在生成帶有調試符號的二進制文件之後,我將以批處理模式運行GDB以生成並將所述索引合併到它中,並預裝快速加載的可調試二進制文件。這在構建機器上尤其值得。 –

回答

3

有時使用-fdebug類型截面可以使事情更快一點。雖然不能保證。

幾分鐘加載......我不知道這個可執行文件有多大。如果我絕望,我可能會嘗試編譯選定的模塊與調試信息。或者看看是否它是一個gdb的錯誤。如果它被分割成一個可執行文件和一些共享庫,並且某些部分不會經常更改,那麼您還可以使用「gdb索引」功能(請參見手冊)來加速爲這些模塊加載debuginfo。

+0

-fdebug-types-section沒有什麼區別。可執行文件是ca. 18MB未剝離,3.2MB剝離。 gdb版本是7.7,我會嘗試從git升級到一個版本,看看它是否有所作爲 – arved

+0

7,7是新的,你可能不會看到太多的差異。這對我來說聽起來不是很大,我很驚訝它需要幾分鐘。 –

+0

它看起來像緩慢是由啓動gdb通過libtool - 模式執行引起的。 (見更新) – arved