【Android】使用NDK定位Crash

4 篇文章 0 订阅
当Android应用或游戏出现崩溃且错误信息有限时,可通过NDK的ndk-stack工具来定位问题。步骤包括:使用cygwin,进入NDK目录,连接设备至调试模式,用adb logcat结合ndk-stack分析日志,并在应用中重现崩溃操作。通过ndk-stack,可以确定崩溃发生在JsonParser的getAllSprite方法。
摘要由CSDN通过智能技术生成

有时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方法中。

参考文章:https://developer.android.com/ndk/guides/ndk-stack.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值