ndk-stack的使用

最近在mac上編譯android 版本,各種崩潰讓人蛋疼,網上學習了下ndk-stack使用方法。

自己備忘下:

1.運行終端。 跳轉到你android sdk 目錄 因爲你的adb 在裏面。

如 cd /Users/name/Android/adt-bundle-mac-x86_64-20131030/sdk/platform-tools 

2、找了路徑正確繼續下一步,./adb logcat | 你android ndk-stack所在的路徑 -sym /你安卓工程.so文件所在的目錄

./adb logcat | /Users/name/Android/android-ndk-r8e/ndk-stack -sym /Users/name/test/proj.android/obj/local/armeabi

3、正確配置後會在終端出現

- waiting for device -

4、AndroidManifest.xml 設置 Debuggable 爲true  在Application 切頁中

5、另外啓動一個終端 編譯android工程

6、ADT連接設備運行你的工程就行了,出現崩潰的話會在你前面配置的終端裏面打印出來。

********** Crash dump: **********

Build fingerprint: 'Xiaomi/aries/aries:4.1.1/JRO03L/JLB29.0:user/release-keys'

pid: 6546, tid: 6575, name: Thread-9654  >>> com.cocos2dx.SanGo <<<

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad

Stack frame #00  pc 00013a78  /system/lib/libc.so

Stack frame #01  pc 00015e55  /system/lib/libc.so (dlfree+1628)

Stack frame #02  pc 00017003  /system/lib/libc.so (free+10)

Stack frame #03  pc 004965e8  /data/data/com.cocos2dx.test/lib/libgame.so (cocos2d::CCImage::~CCImage()+88): Routine __static_initialization_and_destruction_0 in /Users/name/Sango_Android/test/libs/cocos2dx/platform/android/CCApplication.cpp:127

Stack frame #04  pc 0049664c  /data/data/com.cocos2dx.teset/lib/libgame.so (cocos2d::CCImage::~CCImage()+20): Routine CCLog in /Users/name/test/libs/cocos2dx/platform/android/CCCommon.cpp:36

重要的就是 cpp 行號。爲我們定位崩潰地點很有作用,再結合程序的打印輸出位置,就能很快定位問題了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章