在android上运行程序至崩溃
在cmd中输入
adb logcat | ndk-stack -sym $PROJECT_PATH/obj/local/armeabi
,即可找到崩溃地址比如
ajundeMacBook-Pro:~ ajun$ adb logcat | ndk-stack -sym $PROJECT_PATH/obj/local/armeabi
Build fingerprint: ‘Coolpad/yulong89_td_jb/MT6589_8190Q:4.1.2/JZO54K/4.1.027.P0.131126.8190Q:user/release-keys’
pid: 9667, tid: 9686, name: Thread-6003 >>> com.shbreak.xinchang.jd <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000001
Stack frame #00 pc 00226c42 /mnt/asec/com.shbreak.xinchang.jd-1/lib/libgame.so (TitleLayer::onStartClicked(cocos2d::CCObject*, unsigned int)+17)
Stack frame #01 pc 002736f9 /mnt/asec/com.shbreak.xinchang.jd-1/lib/libgame.so (cocos2d::CCActionInterval::startWithTarget(cocos2d::CCNode*)+4)
输入
arm-linux-androideabi-addr2line -e obj/local/armeabi/libgame.so 00226c42
,即可找到崩溃的文件及其行号。
如果没加参数-e,则会出现‘a.out’: No such file
宏定义的无法用addr2line定位到。