android闪退 日志分析 SIGSEGV

之前一次测试 有很多闪退 大部分都是 SIGSEGV(SEGV_MAPERR) 

真是头疼  从未涉及过这类问题  

挠挠头 开始刨坑之旅 

这是U3D 5.2.2的版本

首先要解决这些这些看不懂的堆栈信息 ,bugly意思是 提交制表符文件 来解析 堆栈内存值来找到相应方法位置

这个制表符文件让我头疼了一阵  我之前是解压APK 找到lib文件下的l.so文件 通过bugly上面的方法来获取制表符文件提交到网站上  但是最后出来的 和上图一样 根本没找到位置就这些闪退也就暂时搁置了

突然有一天我在用手机测试性能 进游戏突然闪退 但是连接logcat 看到了一些堆栈信息

心想这个问题概率太高 再尝试下解决

http://dev.qq.com/topic/5901b8df55c328b21aeb6d74  这个BUGLY上纤细介绍 上面的信息的简介

通过 各种神奇搜索 准备使用 NDK库来定位错误信息位置

方法

1.下载NDK (百度搜索下 官网下载即可)

2.解压APK内的.so文件(解压后搜索 下文件夹下.so文件 就是了)

3.通过命令行 

进入 文件夹 D:\android-ndk-r14b-windows-x86_64\android-ndk-r14b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\

执行这个命令

用这个addr2line 参数 -c -f -e .so的文件 后面是堆栈地址(.so我就直接放到了同一个目录)

bin>arm-linux-androideabi-addr2line -C -f -e libunity.so f7218610(可以输入多个地址 会全部显示出来)

失败了。。返回都是 ????问好

想想也是BUGLY内部的方法大概也是这样 都没输出到位置 我这样失败也是正常

突然想到 这是release 版本 也许加密 混淆了 我就又打了debug版本的包 解压APK

 发现果然.so文件从14M 变成了 20M 突然我就兴奋了 再执行上一步操作 堆栈出来了

果然如此行了 查问题吧 这个坑是抛出来了 开始抛下个坑吧

猜你喜欢

转载自blog.csdn.net/qq_18709863/article/details/84190512