首页 > 移动平台 > 详细

【Android】使用NDK定位Crash

时间:2015-02-27 11:55:14      阅读:324      评论:0      收藏:0      [点我收藏+]

有时app或者游戏突然崩溃只提示如下信息,要查找错误的原因感觉有点无从下手,因为提示信息太少了。

02-27 10:57:15.736: A/libc(32000): Fatal signal 11 (SIGSEGV) at 0x0000000c (code=1), thread 32014 (Thread-1461)
02-27 10:57:15.736: A/libc(32000): Send stop signal to pid:32000 in debugger_signal_handler


这时,可以使用NDK提供的ndk-stack工具定位crash位置,步骤如下:

1.打开cygwin。

2.进入NDK根目录。

cd $NDK_ROOT

3.连接安卓设备,打开调试模式。

4.使用adb logcat获取日志信息并通过管道把信息传输给ndk-stack工具进行分析。

$ adb logcat | ./ndk-stack -sym $ANDROID_PROJECT_PATH/obj/local/armeabi

$ANDROID_PROJECT_PATH表示安卓工程根目录,armeabi是当前设备的CPU架构。

示例:$ adb logcat | ./ndk-stack -sym /cygdrive/d/Cocos2d-x/cocos2d-x-2.2.1/projects/AngryBirds/proj.android/obj/local/armeabi

5.打开app或游戏,进行crash的那个操作。


技术分享

这是ndk-stack分析出来的crash信息,可以看到crash发生在JsonParser的getAllSprite方法中。

【Android】使用NDK定位Crash

原文:http://blog.csdn.net/linchaolong/article/details/43965727

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!