iOS崩溃日志分析

本文介绍了iOS设备上崩溃日志的产生位置,如何在Mac和Windows系统中找到这些日志,以及用户如何设置上传崩溃日志。崩溃日志格式包含异常类型、代码和崩溃线程等关键信息。对于内存系统错误和代码抛出的异常,日志有不同的显示,开发者可以通过堆栈信息定位问题,尤其是在Last Exception Backtrace中找到异常源头。
摘要由CSDN通过智能技术生成
崩溃日志的产生

iOS中运行App过程中如果发生程序崩溃,会生成一个崩溃日志文件。这个文件会保存的特定系统目录下,扩展名是crash。当手机连接到iTunes时,会将该文件同步到电脑上。

在Mac系统中这些文件会同步到“~/Library/Logs/CrashReporter/MobileDevice”下。

而在Windows系统中会同步到“C:\Users\\AppData\Roaming\Apple computer\Logs\CrashReporter/MobileDevice”(Vista或以上)或“C:\Documents and Settings\\Application Data\Apple computer\Logs\CrashReporter”(XP)。

崩溃日志的上传

iOS中崩溃日志是可以上传的App Store的服务器,并由开发者查看的。用户可以通过系统设置中的“通用-诊断与用量”来设定是否上传崩溃日志。同时开发者也可以通过捕获异常信号自己定制异常上报。

崩溃日志的格式

一般崩溃日志头部有如下字段

1
2
3
Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x20000008
Crashed Thread:  0

其中Exception Type是异常类型,Exception Codes是异常代码。Crashed Thread指示异常的线程编号。上面表示Crash的线程编号是0(主线程的线程编号是0)。

看崩溃日志时一般要分两种情况,一种是内存、CPU的系统错误,如内存访问错误、除零异常等。另外一种是程序通过写代码抛出的异常,即代码中通过throw关键字抛出的异常。程序抛出的异常是可以捕获并处理的,如果没有捕获,就会Crash,并生成崩溃日志。这两种在日志中有一些细微的差别。

一般内存等系统异常Crash线程信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值