最近一直在和Crash做斗争,一开始用了Bugsnag相当不错,后来经朋友推荐转用腾讯的Bugly,后台查询简直6。

偶尔发现会遇到libunity.so崩溃,如果是Development模式还好,adb log基本就能看的七七八八;如果是Release模式下就一堆地址,根本没法看。网上搜索了下相关信息,绝大多数都是自己编译的C++代码,利用ndk-stack去分析obj文件。但是对于Unity引擎本身来说,我们手头只有一个libunity.so,无法这么干。

直接上传符号表

ps. 要把libunity.sym.so压缩zip之后上传,直接的话Bugly不认…

objdump 导出

在官方论坛某个帖子里找到了答案:利用binutils工具包里的arm-eabi-objdump。

帖子里是说从NDK里找,但是我找了半天都没发现,最后机智的直接用万能的brew搞定…brew tap qiankanglai/embedded

brew install arm-none-eabi-binutils

cd /usr/local/Cellar/arm-none-eabi-binutils/2.23.2/bin

./arm-none-eabi-objdump -d /Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/Variations/mono/Release/Libs/armeabi-v7a/libunity.so > libunity.txt

最后根据崩溃日志里的pc xxxx去搜索导出的符号信息即可…反正这种崩溃大多数时候都是Unity的锅,只能自己想办法规避了……

ps. 原来的thomaseichinger/embedded里面用的sha1已经被brew废弃了,我fork了一个出来并且改成了清华的源,不过只改了arm-none-eabi-binutils一个。

Update

今天wxp和我聊了下,发现新版本竟然Release直接带符号表了,就不用这么麻烦了…5.3.6 Release Notes里第一条是Android: Symbols for release libraries are now available in PlaybackEngines/AndroidPlayer/Variantions/*/Release/Symbols.

android 分析so崩溃,分析libunity.so Release崩溃相关推荐

  1. Android APP native 崩溃分析之 linker SIGBUS 崩溃

    原文地址:https://caikelun.io/post/2019-05-31-android-app-native-crash-linker-sigbus/ 这是 Android APP nati ...

  2. 02.Android崩溃Crash库之App崩溃分析

    目录总结 01.抛出异常导致崩溃分析 02.RuntimeInit类分析 03.Looper停止App就退出吗 04.handleApplicationCrash 05.native_crash如何监 ...

  3. 【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )

    文章目录 一.从 Tombstone 报错日志中查找报错动态库 二.addr2line 命令行工具使用 64 位动态库使用的 aarch64-linux-android-addr2line.exe 工 ...

  4. android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications

    Android应用程序内存分析 原文链接:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html ...

  5. android 自定义相机源码,Android 自定义相机及分析源码

    Android 自定义相机及分析源码 使用Android 系统相机的方法: 要想让应用有相机的action,咱们就必须在清单文件中做一些声明,好让系统知道,如下 action的作用就是声明action ...

  6. linux 内核部分崩溃,Linux 系统内核崩溃分析处理简介

    Written by arstercz -2019-11-12 Linux 系统内核崩溃分析处理简介 背景说明 目前绝大多数的 Linux 发行版都会将 kdump.service 服务默认开启, 以 ...

  7. Android的logger机制分析

    分析安卓的Logger机制 一.概述 Logger机制是在Android系统中提供的一个轻量级的日志系统,这个日志系统是以驱动程序的形式在内核空间实现的,在用户空间分别提供了Java接口和C/C++接 ...

  8. Android Binder Driver流程分析

    Binder是Android中使用最为广泛的IPC框架,从实现的角度可以分为内核层和用户空间层,本文主要分析下Binder Driver在内核层的实现. Binder Driver初始化 1 2 3 ...

  9. Android安全:So分析

    一.So简介  1.Android底层是Linux,Linux本身就是使用C/C++语言,Android使用了一个Dalvik虚拟机才使得应用程序开发使用Java语言:  2.Dalvik支持JNI编 ...

最新文章

  1. DSML:深度子空间相互学习模型(用于癌症亚型预测)
  2. “从A到I”智慧数据中心上海论坛
  3. C++ vector用法 基本用法
  4. MyBatisPlus条件构造器带条件更新update使用
  5. icf表格_ICF企业教练实践大奖案例——建立改变和拯救生命的教练文化
  6. python九九乘法表求和,平均数,最大值,最小值、金字塔、等边三角形
  7. AttributeError: ‘set‘ object has no attribute ‘items‘
  8. 【程序性能分析利器】Google Perf Tool 和 Valgrind 工具包简介
  9. 简 易 版 线 程 池 模 型 学 习
  10. C++——多进程并发与多线程并发
  11. 第二冲刺阶段工作总结10
  12. 如何在小数点前补0,new DecimalFormat(##0.00);
  13. Python学习教程:Python自动化测试框架需要学习哪些?
  14. centos yum源_Linux入门珍藏课件系列第一讲:YUM源(图文)
  15. flash动画入门篇
  16. c语言中的面积和体积计算器,C语言编程问题(面积计算器)——新手问题
  17. 万有引力的意思_详细解释万有引力的本质 - 物理 - 小木虫 - 学术 科研 互动社区...
  18. 苹果计算机取消用户名和密码进入不,苹果电脑怎么设置不用密码开机
  19. 事务的传播行为(讲得比较好)
  20. linux嵌入式在线升级,嵌入式linux Kernel 在线升级参考资料

热门文章

  1. 马化腾出售腾讯股份,四天套现近20亿港元;朋友圈发红包测试视频红包玩法...
  2. 实锤了?哪吒涉嫌抄袭起诉已立案:公布多张相似对比图
  3. 华为苏州人工智能研发基地揭牌 将容纳上万名工作人员
  4. 首次超过苹果!华为高端智能手机Q1国内市场出货量占48%
  5. 《复联4》首轮公映票房27.5亿美金 超《阿凡达》创纪录
  6. 从送快递转好到软件测试,自学三个月后,我拿到了12k?
  7. 从测试流程角度,阿里P8大佬对产品质量的一些总结思考...
  8. 贝叶斯网络模型具体作用
  9. oracle consistent gets,Oracle buffer cache理解之七——统计信息!
  10. 使用ffmpeg来探测GB28181的ps流