- Exception Type异常类型:平日包含1.7中的Signal旌旗灯号和EXC_BAD_ACCESS,NSRangeException等。
- Exception Codes:异常编码:
- Crashed Thread:产生Crash的线程id
5) 线程状况:闪退时存放器中的值。一般不须要这部分的信息,因为回溯部分的信息已经足够让你找出问题地点。
1、Exception Type(异常类型)
- Exception Type:平日包含Signal旌旗灯号 和 EXC_BAD_ACCESS,NSRangeException等。
具体旌旗灯号解释拜见iOS异常捕获(http://www.iosxxx.com/blog/2015-08-29-iosyi-chang-bu-huo.html)
2、Exception Code(异常编码)
- Exception Code:以一些文字开首,紧接着是一个或多个十六进制值。这些数值说清楚明了Crash产生的本质。
- 大年夜Exception Code中,可以区搀扶Crash是因为法度榜样缺点、不法内存拜访照样其他原因。常见的异常编码如下表:
解释1:具体的异常编码代表的含义请参考:Hexspeak
解释2:在后台义务列表中封闭已挂起的应用不会产生崩溃日记。 因为应用一旦被挂起,它何时被终止都是合理的。所以不会产生崩溃日记。
四、Crash日记符号化
1、概述
线程回溯部分内容如下:
- 5 AppName 0x0000000100205280 0x0000000100028000 + 1954432
- 6 AppName 0x00000001002ae59c 0x0000000100028000 + 2647440
这两笔记录包含四列:(以第一笔记录为例子)
- 帧编号—— 5(数字越小,产生时光越晚,产生次序越往后,越好锁定问题典范围)
- 二进制库的名称 ——此处是 AppName.
- 调用办法的地址 ——此处是 0x0000000100205280.
- 第四列分为两个子列,一个根本地址和一个偏移量。此处是 x0000000100028000 + 1954432, 第一个数字指向文件,第二个数字指向文件中的代码行。
解释2:符号化Crash日记须要获取对应的应用二进制文件以及生成二进制文件时产生的 .dSYM 文件(符号表)。必须完全匹配才行。不然,日记将无法被完全符号化。
解释3: Xcode编译项目后,会获得同名的 dSYM 文件(符号表),dSYM 文件(符号表)是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都邑包含在这个文件中,并且每次编译项目标时刻都邑生成一个新的 dSYM 文件,位于 /Users//Library/Developer/Xcode/Archives 目次下,对于每一个宣布版本我们都很有须要保存对应的 Archives 文件。
解释4:符号化可以应用Xcode的两种敕令 symbolicatecrash敕令 + atos敕令
2、symbolicatecrash敕令
1)首选找到symbolicatecrash敕令的地位
- find /Applications -name symbolicatecrash -type f
- //我的本机敕令的地位:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
2)找到线上版本对应的xcarchive文件。大年夜中找到.dSYM和.app文件
6) 二进制映像:闪退时已经加载的二进制文件。
xcarchive地点的路径一般在: /Users//Library/Developer/Xcode/Archives 目次下
3)获取crash日记文件
推荐阅读
cp 13 /home/m/Downloads/Compressed 因为我们已经知道文件名包含 .zip 扩大名,是以我们可以应用 .zip 扩大名进行搜刮。它将限制输出结不雅并显示所需的过程。很多情况下,删除的文件都可以恢复,比>>>详细阅读
本文标题:浅谈iOS Crash(一)
地址:http://www.17bianji.com/lsqh/36347.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示