2014-06-13 36 views
0

我有核心轉儲文件。我在導致核心轉儲和核心文件的GDB路徑中保存了c二進制應用程序(使用Debug ON選項構建)。函數名不顯示在GDB中

但是當我做GDB,我下面獲取堆棧信息:

[email protected]:/abc/def/ghi/appln [css_absmin] gdb application_name core_1206 
HP gdb 3.0 for PA-RISC 1.1 or 2.0 (narrow), HP-UX 11.00. 
Copyright 1986 - 2001 Free Software Foundation, Inc. 
Hewlett-Packard Wildebeest 3.0 (based on GDB) is covered by the 
GNU General Public License. Type "show copying" to see the conditions to 
change it and/or distribute copies. Type "show warranty" for warranty/support. 
.. 

warning: exec file is newer than core file. 
Core was generated by 'application_name'. 
Program terminated with signal 11, Segmentation fault. 
#0 0xc0199640 in ??() 
(gdb) where 
#0 0xc0199640 in ??() 
(gdb) bt 
#0 0xc0199640 in ??() 
(gdb) 

的C二元在PA-RISC(UNIX)編譯。

如何獲得有問題的函數名稱?

+0

可能是在剝離的二進制文件中失敗。使用'bt'來查看完整的回溯。 –

+0

在這裏尋找[可能的幫助](http://stackoverflow.com/questions/8390881/gdb-doesnt-show-function-names?rq=1) –

+0

Mohit,我也嘗試了backtrace(bt)命令。仍然顯示相同的「#0 0xc0199640在?()」 – SuRa

回答

1

孫大信,

你張貼的問題有關gdb但HP-UX GDB不是一個GNU gdb,而是由HP,而gdb定製。所以它被稱爲Hewlett-Packard Wildebeest (based on GDB) - wdb。你的問題是你有極其舊版本的wdb。目前,惠普爲運行HP-UX 11i v1,11i v2或11i v3的HP 9000系統提供gdb 6.5(http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801/?ciid=29080f1bace021100f1bace02110275d6e10RCRD),版本爲3.0!

您似乎擁有HP-UX 11.00,因此您可以在HP-UX論壇上詢問HP 11.00的最新版本wdb。詢問這裏:http://h30499.www3.hp.com/t5/Languages-and-Scripting/bd-p/itrc-150#。在爲PA-RISC安裝最新的wdb之後,嘗試再次使用它回溯。我希望你能得到最新的wdb的正確回溯。