当前位置: 首页 > news >正文

Unity移动应用如何在Bugly上查看崩溃堆栈

文章目录

      • 一、使用Bugly对移动应用进行崩溃监控
      • 二、崩溃类型
        • 1、Java崩溃
        • 2、Native崩溃
      • 三、Bugly上传符号表解析崩溃堆栈
        • 1、关于符号表
        • 2、上传符号表
        • 3、Native崩溃堆栈解析
      • 四、通过NDK的addr2line解析崩溃堆栈

一、使用Bugly对移动应用进行崩溃监控

Unity项目中接入了腾讯的Bugly,通过Bugly后台,我们可以对移动应用进行异常监控、崩溃分析等。
在这里插入图片描述

Bugly官网: https://bugly.qq.com/v2/index
腾讯 Bugly,是腾讯公司为移动开发者开放的服务之一,面向移动开发者提供专业的 Crash 监控、崩溃分析等质量跟踪服务。Bugly 能帮助移动互联网开发者更及时地发现掌控异常,更全面的了解定位异常,更高效的修复解决异常。

二、崩溃类型

1、Java崩溃

这种情况我们可以比较完整的看到java的调用堆栈,比较好定位问题。
在这里插入图片描述

2、Native崩溃

这种情况的奔溃,如果没有上传符号表,我们看到的堆栈信息就是这样的
在这里插入图片描述
蓝色的部分就是崩溃的地方,没有符号表,我们是看不到具体是哪个文件哪一行异常。

三、Bugly上传符号表解析崩溃堆栈

1、关于符号表

符号定义的本质是:指被分配了存储空间。如果是函数名则指代码所在区;如果是变量名则指其所在的静态数据区。
所有定义的符号的值就是其目标所在的首地址。
符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示:
<起始地址> <结束地址> <函数> [<文件名:行号>]

2、上传符号表

根据上面的信息,是在libunity.so中崩溃的,我们需要上传libunity.so的符号表。

这个libunity.soUnity的引擎库,它的符号表在Unity安装目录中,具体位置如下:
在这里插入图片描述
具体哪个,要看具体的平台(比如AndroidiOS)、编译后端(比如il2cppmono)、发布环境(比如DevelopmentRelease)。
在Mac上,符号表的路径是:
/Applications/Unity/PlaybackEngines/AndroidPlayer/Variations/mono/Release/Symbols
/Applications/Unity/PlaybackEngines/AndroidPlayer/Variations/il2cpp/Release/Symbols
在windows上,符号表的路径是:
C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Symbols\armeabi-v7a\libunity.sym.so
C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Symbols\armeabi-v7a\libunity.sym.so

我们将符号表上传到Bugly
在这里插入图片描述
在这里插入图片描述

3、Native崩溃堆栈解析

上传完符号表,我们就能看到清晰的调用堆栈了,如下
在这里插入图片描述

四、通过NDK的addr2line解析崩溃堆栈

我们也可以自己通过NDKaddr2line工具,配合符号表解析崩溃堆栈。
首先,找到NDKaddr2line工具,NDK目录中有个toolchains文件夹,里面有各个CPU平台的工具
在这里插入图片描述
我们搜索一下addr2line.exe,如下,由于我是Android arm架构的,所以使用arm-linux-androideabi-addr2line.exe
在这里插入图片描述
进入arm-linux-androideabi-addr2line.exe所在的目录,将符号表拷贝到当前目录
在这里插入图片描述
假设我们要查00e437cc这个地址的堆栈,通过如下命令行

arm-linux-androideabi-addr2line.exe -f -C -e libunity.sym.so 00e437cc

在这里插入图片描述
可以看到,输出的堆栈信息为

__gnu_cxx::__verbose_terminate_handler()
??:?

与上面bugly自动解析的结果一致
在这里插入图片描述

http://www.xdnf.cn/news/846541.html

相关文章:

  • 【Python】【进阶篇】四、Python爬虫的URL编码/解码
  • ASCII码表完整版
  • Postman下载安装教程
  • XML简介及举例
  • 阿里图标库使用(Unicode)展示图标
  • pip基本使用
  • Linux基本指令(超详版)
  • Three.js学习1:threejs简介及文档本地部署
  • vscode使用git上传提交代码、比较代码(git基本操作)
  • 【雕爷学编程】Arduino智慧农业之精确控制温度、湿度和光照
  • Git的下载、安装与使用(Windows)
  • flex布局
  • 前端插件swiper基础使用详解含部分常用API
  • SSH服务
  • swagger接口测试工具介绍及使用
  • 00_简单常识介绍——NOIP/NOI/IOI(信息学奥林匹克竞赛)
  • zabbix监控
  • Apache Doris新手指南:10分钟内搭建数据分析引擎!_doris priority_netwoks(3)
  • 什么是LLM?看这一篇就够了!
  • Ping命令详解(使用Ping这命令来测试网络连通)
  • Token验证流程、代码示例、优缺点和安全策略,一文告诉你。
  • jQuery看这一篇就够啦,jQuery基础大全,可用于快速回顾知识,面试首选
  • Https连接过程详解
  • Linux - 安装 Jenkins(详细教程)
  • Python编程入门——透析八大核心知识点快速掌握Python编程
  • VirtualBox虚拟机与主机互传文件的五种方法
  • Docker 搭建 Minio 容器 (完整详细版)
  • ASCII码对照表
  • vue 使用canvas 详细教程
  • ctf 002 MD5解密