完整指南:iPhone崩溃日志查看与分析方法及低内存崩溃处理

ios查看崩溃日志 查看iphone崩溃日志

我们在进行iPhone应用测试时必然会在"隐私"中找到不少应用的崩溃日志,但是不会阅读对于很多人来说简直头疼。在此小编为大家详细介绍一下具体的阅读方法,希望大家可以更快的定位BUG。首先我们先看一下从iPhone中随机抽出的一个Crash日志:

进程信息

日志主要分为六个部分: 进程信息基本信息异常信息线程回溯线程状态二进制映像 ,具体位置已经标记在上述文件中。

日志组成分析:

在上述六个部分中,我们最需要关注的是异常信息和线程回溯的内容。

1. 进程信息: 发生crash进程的相关信息

Hardware Model: 标识设备类型

Process:应用名称

Path 所在路径

Identifier 程序ID

Version 版本号

Code Type 处理器架构

2. 基本信息: 给出了一些基本信息,包括闪退发生的日期和时间,设备的iOS版本。

3. 异常信息: 崩溃时抛出的异常类型,还能看到异常编码和抛出异常的线程。

注:

具体信号说明参见 iOS异常捕获

详细的异常编码代表的含义请参考: Hexspeak

因此我们可以确定本次崩溃原因是内存访问错误

4. 线程回溯: 回溯是闪退发生时所有活动帧清单。它包含闪退发生时调用函数的清单。

实际上我们直接从iPhone中导出的崩溃日志应该是一串地址表示的,如下:

大家可以通过symbolicatecrash 命令和dSYM文件将最后的两列解析为具体的方法名和行数。(具体使用方法大家可以自行查找)

使用Keymob工具可以更方便地进行崩溃日志的符号化分析,它支持自动解析和可视化展示,无需手动处理命令行,同时提供实时日志监控和过滤功能,帮助开发者快速定位问题。

在这里我们就可以看到详细的方法名,这样就能帮助开发同学定位到具体位置。

5. 线程状态: 闪退时寄存器中的值。一般不需要这部分的信息,因为回溯部分的信息已经足够让你找出问题所在。

6. 二进制映像: 闪退时已经加载的二进制文件。

低内存崩溃:

因为低内存崩溃日志与普通崩溃日志略有不同,所以本教程特别分开说明一下。

iOS设备检测到低内存时,虚拟内存系统发出通知请求应用释放内存。这些通知发送到所有正在运行的应用和进程,试图收回一些内存。

如果内存使用依然居高不下,系统将会终止后台线程以缓解内存压力。如果可用内存足够,应用将能够继续运行而不会产生崩溃报告。否则,应用将被iOS终止,并产生低内存崩溃报告。低内存崩溃日志上没有应用线程的堆栈回溯。相反,上面显示的是以内存页数为单位的各进程内存使用量。被iOS因释放内存页终止的进程名称后面你会看到jettisoned 字样。如果看到它出现在你的应用名称后面,说明你的应用因使用太多内存而被终止了。

当应用发生低内存闪退时,你必需看看应用中内存使用的方式,以及是如何处理低内存警告的。你可以使用Instruments工具中使用Allocations 和 Leaks来发现内存分配问题和内存泄漏问题。如果你不知道如何利用Instruments 检查内存问题。

相关推荐
秧歌star5191 小时前
PageHelper 分页失效原因分析与正确实践
后端
疯狂的程序猴1 小时前
苹果iOS应用签名与上架App Store完整指南包括注意事项
后端
回家路上绕了弯1 小时前
生产环境服务器变慢?从应急到根因的全流程诊断处理指南
分布式·后端
小胖霞1 小时前
Node+Express+MySQL 后端生产环境部署,实现注册功能(三)
前端·后端
aiopencode2 小时前
抓包技术全面指南:原理、工具与应用场景
后端
该用户已不存在2 小时前
Gemini 3.0 发布,Antigravity 掀桌,程序员何去何从?
后端·ai编程·gemini
aiopencode2 小时前
软件苹果商城上架的流程与团队协作模式 一个项目从开发到发布的完整经历
后端
yeyong2 小时前
playwright的调试模式,方便调试selector, locator语法及查找效果
后端
鹿里噜哩2 小时前
Spring Authorization Server 打造认证中心(一)项目搭建/集成
java·后端·spring