Crash log 文件分析

最近测试用测试机测试项目时发生闪退,心想应该是偶现 bug,不好重现又不是处于 Xcode run 状态。所以准备将测试的测试机的 crash log 导出研究下,有想法便着手来做。

Xcode 自带可以导出某个设备的 Crash

选中 Devices 进入

找出某时某项目出现的 crash 导出

打开导出的 .crash 文件


看到这个我是拒绝的,头都大了。

硬着头皮来看:

第一部分

一些基本信息设备版本,路径,identifier等。

第二部分

Exception Type:异常的类型。

Exception Codes :异常错误码

Termination Reason:闪退的原因,比如常见的数组越界啊,什么的。

Triggered by Thread:出现问题在哪个线程,这个比较重要,首先确定在哪个线程中出了问题,然后再去定位。

第三部分

发生崩溃前后执行的代码

CoreFoundation                0x18f6c51b8 __exceptionPreprocess + 124

1  libobjc.A.dylib              0x18e0fc55c objc_exception_throw + 56

2  CoreFoundation                0x18f6c5100 +[NSException raise:format:] + 116 // 生成异常,后面是抛出异常

3  PayDayLoan_Yongqianhua        0x1002fabd8 UmengSignalHandler + 128 // 友盟统计捕获异常

4  libsystem_platform.dylib      0x18e755338 _sigtramp + 36

5  libsystem_kernel.dylib        0x18e68e49c abort_with_payload_wrapper_internal + 100

6  libsystem_kernel.dylib        0x18e68e4c8 abort_with_payload + 12  // 这两条才是关键


进行查阅资料,发现这两条是调用设备的相机,日历等等没有在 plist 文件中加对应字段引起的问题,才想起来最近的新增的需求是有个访问日历,定位到了 bug所在。

线程一:发生bug 的线程

Thread 0 name:  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:

0  libsystem_kernel.dylib        0x000000018e693014 __pthread_kill + 8

1  libsystem_pthread.dylib      0x000000018e75b450 pthread_kill + 112

2  libsystem_c.dylib            0x000000018e607400 abort + 140 // 在异常发生后,线程直接 kill 了,导致了闪退。

3  libc++abi.dylib              0x000000018e0d12d4 __cxa_bad_cast + 0

4  libc++abi.dylib              0x000000018e0eecc0 default_unexpected_handler() + 0

5  libobjc.A.dylib              0x000000018e0fc844 _objc_terminate() + 124

6  libc++abi.dylib              0x000000018e0eb66c std::__terminate(void (*)()) + 16

7  libc++abi.dylib              0x000000018e0eb234 __cxa_rethrow + 144

8  libobjc.A.dylib              0x000000018e0fc71c objc_exception_rethrow + 44

9  CoreFoundation                0x000000018f59e32c CFRunLoopRunSpecific + 560

10  GraphicsServices              0x0000000191052198 GSEventRunModal + 180

11  UIKit                        0x00000001955e57fc -[UIApplication _run] + 684

12  UIKit                        0x00000001955e0534 UIApplicationMain + 208

13  PayDayLoan_Yongqianhua        0x0000000100168dd4 main (main.m:14)

14  libdyld.dylib                0x000000018e5815b8 start + 4

你可能感兴趣的:(Crash log 文件分析)