如何看Crash 文件
Posted 喵喵yy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何看Crash 文件相关的知识,希望对你有一定的参考价值。
如何查看崩溃日志
好了,获得是人类可读语言的崩溃日志后,或者是从别人手机到处崩溃日志后,下一步就是查看了。下面就正对一个程序猿该如何看稍微说说。
崩溃日志头
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Incident Identifier: 635A20F0-BC79-4724-AE45-D49097085250
CrashReporter Key: 21a348fcc69b56e9f74e9b0078c8d7bbc0ace04a
Hardware Model: xxx
Process: crashDemo [3131]
Path: /private/var/mobile/Containers/Bundle/Application/B2B0DDAE-2E1B-422E-AA4D-99C2578C99E6/crashDemo.app/crashDemo
Identifier: com.demo.crashDemo
Version: 2443 (1.4.2)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2015-11-24 17:57:00.00 -0800
Launch Time: 2015-11-24 17:56:44.44 -0800
OS Version: ios 9.1 (13B143)
Report Version: 105
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
|
首先正对这个崩溃日志头,程序猿级别的童鞋只要关注几点就好了。 Process
:是在Info.plist
文件中key为CFBundleExecutable
所填写的名字,首先先确认这个,别到时候发现尼玛这不是自己的崩溃日志 Version
:这个则是要关注的第二个点,就是这个崩溃日志产生的版本,因为对于中大型公司来说的话,一般有可能多个版本并行的情况,针对崩溃日志一定要看清楚是哪个版本,这个是由Info.plist
文件中的CFBundleVersion
和CFBundleVersionString
组成 OS Version
:这个字段则是说我这个崩溃日志是在什么系统上面产生的,iOS 8还是iOS 9?这个总得知道吧,因为有可能你用到了被停用的接口啊,或者是太新的接口在老版本上不兼容啊等问题 ‘Exception Type’:说明崩溃产生的原因,具体的详情可以查看苹果官网
‘Triggered by Thread’:这个说明在哪个线程上崩溃的,这个一定得看要不然下面一堆堆栈信息完全就不知道看哪个了
崩溃日志的堆栈信息
然后就是找到对应的崩溃堆栈信息来说的话,去找对应的崩溃函数,还是用上方的第一张图来举例:
其实如果是自己写的代码一眼就能看出来问题所在了,因为能从这个堆栈中找到问题所在。一般这个调用都是从上往下看,最上面的出现你熟悉的代码一般就是问题所在了,如果上图中[JsonUtil dataRequest:Key:Delegate:Info:] (JsonUtil.m:166)
一眼就能看出来这个是我的代码,然后我去分析这行代码周围的代码很快就能找到问题所在了。至于其他的就没什么好看了。
结束语
其实除了从苹果审核人员那里获得崩溃日志外,我们还可能通过从测试人员的手机里拷贝出来。一般通过iTunes的同步功能就能讲手机中的崩溃日志拷贝到电脑里面来查看(如下图)。如果是Mac的话目录应该是在/Users/chipsea/Library/Logs/CrashReporter/MobileDevice
目录下能看到同步的到的崩溃日志,然后根据日志进行修改Bug吧。最后去屎吧八阿哥!
以上是关于如何看Crash 文件的主要内容,如果未能解决你的问题,请参考以下文章
iOS crash 追终 ,iOS 如何定位crash 位置