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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以下为文章正文,如果觉得有用,欢迎给她打赏。 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务...
    赤色追风阅读 7,286评论 1 11
  • 很多时候模拟器debug无法复现真机上的crash 因此需要打包安装到真机后,读取本地crash log文件分析 ...
    FineFan阅读 5,644评论 0 0
  • 比较好的转载:http://www.cocoachina.com/ios/20151218/14748.html转...
    liudhkk阅读 4,427评论 0 2
  • 今天碰巧下载了QQ浏览器iOS版本,居然一启动就挂了。后来从手机里面把崩溃信息导出来,仔细研究下,把研究的结果放到...
    yqmfly阅读 8,175评论 1 1
  • 运行中一些公众号饭后一些课程。课程的种类多种多样,而且这两天就可成,都有一个共同特点,就是要把课程的二维码或者是链...
    萨拉zanetti阅读 1,027评论 0 0