2010-05-14 52 views
6

您可以指向一個符號文件,命令的廣發行:如何從包含子目錄的給定路徑遞歸加載所有符號文件?

symbol-file /usr/lib/debug/symbolfile.so 

但如何告訴gdb來加載從包括子目錄給出路徑中的所有符號文件?

+1

你在哪個平臺上?我對Linux/ELF有一個很好的答案,但如果這不是你的平臺,我懶得輸入它。 – 2010-05-16 03:15:23

+0

是的,我有一個Debian Linux平臺。 – user44556 2010-05-16 09:14:57

+0

男人,所有這些答案吸...同上[如何在gdb中加載多個符號文件?](http://stackoverflow.com/q/20380204) – jww 2016-08-01 20:54:54

回答

2

在Linux系統上,您不應該首先使用symbol-file GDB命令。

訣竅是以GDB自動查找符號文件的方式準備二進制文件。這非常容易做到。詳細說明是here

+0

那麼,讓我們假設我自己不編譯任何東西。例如,在apt-get安裝libc-dbg之後。我應該在調試之前將安裝的調試包複製到某處嗎? – user44556 2010-05-17 05:52:28

+0

執行「apt-get install libc-dbg」應該允許您在GDB *中調試libc,而無需任何其他符號文件命令。如果沒有,那麼你要麼破壞了.gdbinit(很可能),破壞了GDB,或者破壞了libc-dbg。我建議你編輯你的問題,並提供儘可能多的細節,包括安裝了哪些軟件包以及它們包含什麼,以及使用「gdb -nx -ex」set'verbose on'./a.out在實際GDB會話中的輸出」。 – 2010-05-17 18:17:25

0

使用以下命令: 集solib搜索路徑路徑

0

解決的辦法是add-symbol-file。例如,如果符號文件名爲lib.out

add-symbol-file lib.out 0 

這是應用程序開發人員使用存儲在ROM庫嵌入式系統上特別有用。如果執行在庫函數調用中停止,調試器需要符號文件來重新構建堆棧。 即使該庫是在開發人員無法訪問的單獨系統上生成的,也可以工作。

相關問題