美文网首页iOS Developer
开发之--简单的定位crash

开发之--简单的定位crash

作者: voQuan | 来源:发表于2017-03-04 23:14 被阅读0次

    再好的程序猿写出的代码也会出现BUG,只有在不断调试修改下,才能写出优质的代码。

    下面我给大家介绍几种比较方便定位crash的方法:

    第一种也是比较常用的方法,通过看程序崩溃输出的堆栈日志来定位出现BUG的位置。

    一般情况下,这种方法能定位出大部分的crash

    上面图片可以看出

    >  Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[2]'

    数组中放入nil这个元素导致的崩溃;

    从崩溃日志来看:

    UIKit0x000000010c1561d0 -[UIWindow sendEvent:] + 865 

    ——>    -[ViewController testBug] + 109 

    ——>  +[NSArray arrayWithObjects:count:] + 52 

     ——>  -[__NSPlaceholderArray initWithObjects:count:] + 290

    可以看出崩溃的是在ViewController 调用testBug这个方法的时候,数组中有nil元素的原因,从而直接定位到代码具体位置。


    第二种是开启一个异常断点(an  Exception Breakpoint)。

    在Xcode设置异常断点:

    当程序运行过程中,发生崩溃的时候,Xcode会自己定位到crash的地方;

    从而可以清楚的直到自己写的程序crash的地方在哪里!!

    方法一有的时候crash不会出现堆栈崩溃日志,这时方法二就显得很有用了


    那么,当一个发布的程序,怎么收集客户使用我们写的程序产生的crash日志呢?

    一般使用的一般是第三方集成的崩溃收集工具,如:友盟、腾讯的Bugly、国外的一些工具等等;我个人感觉用起来比较方便的是Bugly,适用于新手,集成简单易用。(使用方法我就不介绍了,直接看Bugly官网

    相关文章

      网友评论

        本文标题:开发之--简单的定位crash

        本文链接:https://www.haomeiwen.com/subject/wqwjgttx.html