2012-06-13 88 views
1

我通過NDK建立了一個項目,但不幸的是,當它在Android模擬器運行時,它下面的提示崩潰:回溯停止:前幀等同於該框架(堆棧損壞?)GDB的Android C++項目中

[1] + Stopped (signal)  ./secfs secfs-client /data/fuse_dir /data/pwrite/test_11 

然後,我跟着tutorial來調試我的項目,但它來到大會文件。對我來說,瞭解Assembly文件並不容易。所以,我來使用核心轉儲。 但是,當系統產品的核心文件,我想讀使用gdb的核心文件,它會提示以下和gdb似乎並沒有與它的工作:

Core was generated by `./secfs secfs-client /data/fuse_dir /data/pwrite/test_11'. 
Program terminated with signal 11, Segmentation fault. 
#0 0x4001e7f0 in ??() 
(gdb) bt 
#0 0x4001e7f0 in ??() 
#1 0x4001fdfa in ??() 
Backtrace stopped: previous frame identical to this frame (corrupt stack?) 

最後,我有不知道接下來該做什麼,有什麼想法?謝謝

回答

0

使用(暴力)的力量。將日誌語句放在代碼中,查看停止的地方。通過這種方式,您可以瞭解代碼中導致SEGFAULT的部分是什麼。多次運行該應用程序並查看最近的日誌語句是什麼。不要認爲緊隨最後一條日誌語句的代碼是有問題的代碼。有時某些日誌語句不會出現在日誌中。我認爲這是因爲文本的內部緩衝。這就是爲什麼你應該多次運行代碼。

+0

我真的希望這不是很好的建議。但是,在Android上調試本機代碼仍然是一項艱鉅的任務,甚至到2013年的一半。所以浪費了幾個小時(再次)試圖讓它工作,我可能會訴諸日誌聲明垃圾郵件。 – notlesh