通过Bugly上报的日志查找崩溃闪退原因

第一步,解析堆栈信息

在bugly上收集到的信息是这样的

0x000000010542e46c 0x0000000104db4000 + 6792300

OS应用发生崩溃时,系统会生成一份崩溃日志,这份日志中包含了崩溃时的堆栈信息,但这些堆栈信息并非直接指向源代码,而是以16进制的地址表示,这就需要我们进行反向符号化操作来定位具体的代码行数。

以下是具体的步骤:

1. 打开终端,cd到Xcode的"Developer"目录下,如:

```
cd /Applications/Xcode.app/Contents/Developer
```
2. 执行以下命令进行反向符号化:

```
./usr/bin/atos -o [dSYM文件的路径]/Contents/Resources/DWARF/[应用的名字] -l [内存基地址] [要转换的地址]
```

其中:
- [dSYM文件的路径]: dSYM文件是在编译时生成,用于存储应用的调试符号信息,通常和.ipa文件在同一目录下。
- [应用的名字]: 你的应用名字,该值需要和dSYM文件的名字一样。
- [内存基地址]: 崩溃堆栈信息中的内存基地址。
- [要转换的地址]: 崩溃堆栈信息中你要转换的那个地址。

这样就可以找到对应的源代码行数了。

需要注意的是,这种方法只适用于你有dSYM文件的情况下,如果没有,则需要使用其他方式,如在开发阶段打开Xcode的异常断点等方法。

例如:

cuixiang@Cuis-Mac-mini ~ % cd /Applications/Xcode.app/Contents/Developer

cuixiang@Cuis-Mac-mini Developer % ./usr/bin/atos -o "/Users/cuixiang/Documents/twig/twig-mobile.app.dSYM/Contents/Resources/DWARF/twig-mobile" -l 0x0000000102e38000 0x0000000103356514

得到具体的堆栈如下

cocos2d::LuaBridge::pushLuaFunctionById(int) (in twig-mobile) + 116

第二步,分析崩溃时内存占用,发现崩溃时内存剩余5%一下

第三步,查看内存和调用堆栈,通过分析波峰堆栈,查找内存增长的点,这里发现是spine相关的API,在相关调用地方加日志发现缓存失效,每次都重新创建新的spine,而旧的有没释放。进一步查找发现失效的原因是切换场景时置空了缓存池table,同样的在AndroidStudio上查看也是同样的内存涨幅,androidstudio查看内存情况看这里。


可以发现,通过调整每次进出游戏后加载的资源都释放了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】某赛通 电子文档安全管理系统 多个接口存在远程命令执行漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

【RAG 实践】LlamaIndex 快速实现一个基于 OpenAI 的 RAG

这是 LlamaIndex 官方 Starter Tutorial 中 demo,用很少的代码来使用 OpenAI 快速实现出一个 RAG。 Ref: Starter Tutorial | LlamaIndex 代码:llamindex-rag-demo | Kaggle 1)设置 OpenAI Token 这里使用国内的 OpenAI 中转 API token&…

【Python】数据分析-Matplotlib绘图

数据分析 Jupyter Notebook Jupyter Notebook: 一款用于编程、文档、笔记和展示的软件。 启动命令: jupyter notebookMatplotlib 设置中文格式:plt.rcParams[font.sans-serif] [KaiTi] # 查看本地所有字体 import matplotlib.font_manager a sorted…

802.11ax RU - 传输的最小单元

子载波 无线信号是加载在某个固定频率上进行传输的,这个频率被称为载波。802.11标准中,对传输频率有更新的划分,而这些划分的频率被称为子载波。Wi-Fi 6中,以20Mhz信道为例,20Mhz信道被划分成256个子载波,…

QML 鼠标和键盘事件

学习目标:Qml 鼠标和键盘事件 学习内容 1、QML 鼠标事件处理QML 直接提供 MouseArea 来捕获鼠标事件,该操作必须配合Rectangle 获取指定区域内的鼠标事件, 2、QML 键盘事件处理,并且获取对OML直接通过键盘事件 Keys 监控键盘任意按键应的消…

基于3D感知的端到端具身操作论文导读

DexIL:面向双臂灵巧手柔性操作的端到端具身执行模型 模型架构 输入:   观测Ot: RGB点云,使用PointNet进行编码;   状态St: 双臂末端7x2Dof位姿16x2灵巧手关节位置,只进行归一化,无编码&am…

Linux Win 10 Windows上安装Ollama部署大模型qwen2 7b/15配置启动 LangChain-ChatChat 0.2.10进行对话

Win 10 Window安装Ollama部署qwen2 7b LangChain-ChatChat 环境说明 Win 10 Python 3.11.9 LangChain-ChatChat 0.20 Ollama 0.2.10 Qwen2 1.5b/7b Windows 安装Ollama 下载并安装Windows版Ollama https://ollama.com/download#/ 下载大模型qwen2:1.5b或者qwen2:7b 在命令…

从实时监控到风险智能预警:EasyCVR视频AI智能监控技术在工业制造中的应用

随着科技的不断进步和工业制造领域的持续发展,传统的生产管理方式正逐渐转型,迈向更加智能、高效和安全的新阶段。在这个变革过程中,视频智能监控技术凭借其独特的优势,成为工业制造领域的管理新引擎,推动着从“制造”…

【YOLOv8系列】(三)YOLOv8应用实践:从识别到分类再到分割的全方位视觉解决方案

随着深度学习技术的不断演进,目标检测领域的明星模型——YOLO系列,已经发展到了第八代,即YOLOv8。这一版本不仅继承了前辈们快速与准确的特点,还实现了功能上的巨大飞跃,成为了一个全能型的视觉AI工具箱,支…

maven的settings.xml无法正确配置本地仓库路径

因为以前使用过新版的maven,现在要换个版本使用。 在配置新的本地仓库路径的时候突然发现居然idea居然识别不了我settings.xml里面配置的路径。 我很是震惊,明明之前一直都是这样子配置的。怎么突然间不行了。当我冥思苦想,在网上搜寻资料无果…

WPF学习(5) -- WPF绑定

一、双向绑定 1.代码示例 <Window x:Class"学习.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expres…

[论文阅读]MaIL: Improving Imitation Learning with Mamba

Abstract 这项工作介绍了mamba模仿学习&#xff08;mail&#xff09;&#xff0c;这是一种新颖的模仿学习&#xff08;il&#xff09;架构&#xff0c;为最先进的&#xff08;sota&#xff09;变换器策略提供了一种计算高效的替代方案。基于变压器的策略由于能够处理具有固有非…

阿里云产品流转

本文主要记述如何使用阿里云对数据进行流转&#xff0c;这里只是以topic流转&#xff08;再发布&#xff09;为例进行说明&#xff0c;可能还会有其他类型的流转&#xff0c;不同服务器的流转也可能会不一样&#xff0c;但应该大致相同。 1 创建设备 具体细节可看&#xff1a;…

Spring源码中的模板方法模式

1. 什么是模板方法模式 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它在操作中定义算法的框架&#xff0c;将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的定义&…

驱动LSM6DS3TR-C实现高效运动检测与数据采集(8)----中断获取FIFO数据并应用MotionFX库解析空间坐标

驱动LSM6DS3TR-C实现高效运动检测与数据采集.8--中断获取FIFO数据并应用MotionFX库解析空间坐标 概述视频教学样品申请源码下载开启LED开启INT中断参考驱动程序中断读取传感器数据主程序演示 概述 本文将探讨如何使用中断机制获取FIFO数据并应用MotionFX库解析空间坐标。Motio…

在 PostgreSQL 里如何处理数据的索引碎片整理的自动化?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中数据索引碎片整理的自动化处理 PostgreSQL 中数据索引碎片整理的自动化处理 在数据库管…

接口基础知识2:http通信的组成

课程大纲 一、http协议 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是互联网中被使用最广的一种网络协议&#xff0c;用于客户端与服务器之间的通信。 HTTP协议定义了一系列的请求方法&#xff0c;例如 GET、POST、PUT、DELETE 等&…

特惠电影票api安全性如何评测

评测特惠电影票API的安全性是确保用户数据安全和系统稳定运行的关键步骤。以下是评测特惠电影票API安全性的一些方法和步骤&#xff1a; ### 1. **认证和授权** - **JWT认证**&#xff1a;使用JSON Web Token (JWT) 进行用户身份验证和授权&#xff0c;确保只有合法用户可以访…

Ubuntu搭建Android架构so库交叉编译环境

目录 前言一、下载NDK并安装二、安装NDK三、配置交叉编译工具链四、编写交叉编译脚本 前言 需要将一些源码编译成Android可用的架构的so库 一、下载NDK并安装 https://developer.android.google.cn/ndk/downloads/ 二、安装NDK 将下载下来的android-ndk-r23b-linux.zip解压…

uniapp内置组件scroll-view案例解析

参考资料 文档地址&#xff1a;https://uniapp.dcloud.net.cn/component/scroll-view.html 官方给的完整代码 <script>export default {data() {return {scrollTop: 0,old: {scrollTop: 0}}},methods: {upper: function(e) {console.log(e)},lower: function(e) {cons…