2011-07-13 51 views
1

我有核心轉儲文件。當我嘗試在gdb中打開時。我能夠看到回溯(帶有地址及其相應的功能),但是映射到.so文件的相應功能不是源。如何將.so文件映射到gdb中的源文件

BT看起來像這樣

#0 0xf611b39c in xxFun() from /lib/libxx.so.0 

$file /lib/libtxx.so.0 
/lib/libtxx.so.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped 

能夠利用納米符號顯示!

查詢: - 1)我該如何將這個.so文件映射到源文件 2)我無法顯示信息當地人/參數。我怎樣才能得到這些數據?

當我嘗試顯示

#info locals 
No symbol table info available. 
#info args 
No symbol table info available. 

請讓我知道如果你需要更多的信息。

+1

如果構建了.so文件自己,在調試模式下重新構建它(即至少使用'-g'編譯旗)。如果沒有,您需要從庫維護人員那裏獲得調試版本(或者編譯源代碼)。 –

回答

0

正如「n.m.」評論說,你需要libxx.so內置調試信息(通常在編譯時切換-g)。

,將提供兩個地址,源映射,以及info localsargs

+0

@ n.m和@Employed俄羅斯。感謝您的建議。其實我需要使用調試模式構建它,並使用* .so.debug文件而不是* .so文件。但* .so文件顯示,它沒有條帶。那是奇怪的唯一的東西。 – Thangaraj