2013-02-11 67 views
0

我有一個在x86目標機器上生成的應用程序核心文件。所有庫和二進制文件都被剝離,因此在目標上運行時的後退痕跡非常少。我仍然看到符號名稱和後面的跟蹤。gdb在主機上顯示堆棧已損壞

但是,如果我將核心文件移動到主機上,並在主機上爲x86運行gdb,請將其提供給sysroot,它會報告以下內容。爲什麼主抱怨,而目標是確定回溯追蹤解碼

不能在地址量0x104

任何意見/建議加載內存?順便說一句,我所有的代碼都是用-fPIC編譯的。

+0

爲什麼你認爲堆棧已損壞? – stark 2013-02-11 20:15:22

+0

在主機上,我在gdb上看到了這個。任何像set sysroot這樣的命令我都會看到從一個讀取符號。 [新主題3822] [新主題3817] [新主題3791] [新主題3795] [新主題3790] [新主題3825] [新主題3826] [新主題3827] [新主題3828] [新主題3824] [新主題3829] [新主題3830] [新主題3831] [新主題3823] [新主題3786] **地址0X1A不能訪問內存* * – Murali 2013-02-11 23:22:31

+0

你可以檢查下面的命令,看看兩者的結果是否相同? md5sum和文件核心。*。基本上是確保你已經以正確的格式和完整的方式移動核心文件。 – 2013-02-12 04:19:55

回答

0

我做了以下內容:GDB-7.2 path_to_biniary,然後設置SYSROOT

試試這個:

gdb /path/to/binary 
(gdb) set sysroot /path/to/buildroot 
(gdb) core /path/to/core_file 

核心後設置SYSROOT已經加載(我相信會發生在你的調用中)爲時已晚。

+0

只是爲了終止此線程,我能夠通過回到較早版本的gdb(6.6.1)來解決此問題。沒有這個問題。 – Murali 2013-06-27 18:24:40