美文网首页
使用ExceptionsBreakpoint遇到的问题

使用ExceptionsBreakpoint遇到的问题

作者: BobooO | 来源:发表于2016-04-07 15:19 被阅读355次

    Xcode有个比较厉害而又经常被忽略的断点功能—Exceptions Breakpoint。
    使用Exceptions Breakpoint的时候发现,如果将Exceptions设置为All,会导致应用在main()函数里面崩溃,避免这个问题的方法是将Exception更改为Objective-C.


    将All更改为Objective-C

    在stack overflow看到的解释如下:

    stack overflow看到的解释
    附链接:http://stackoverflow.com/questions/26127004/xcode-throws-an-exception-in-main-in-ios-8-with-all-exceptions-breakpoint
    About Exceptions Breakpoint

    苹果官方文档只介绍了这个断点的使用方法,没对这个断点的功能做具体的介绍。
    当应用发生诸如数组越界、null值、对象重复释放等问题导致的崩溃时,Xcode通常只会跳到main()函数。而Exceptions Breakpoint会在异常发生的时候在异常的地方放一个断点,调试器不会再跳到main()函数,而是停留在了异常发生的地方,而且大多数情况下Exceptions Breakpoint都会打印异常消息。碉堡了!

    其他调试技巧备忘

    1、启用NSZombieEnabled ——— 定位野指针问题,只能检测已经释放了对象的地址。
    2、静态分析 ——— 可以定位部分内存泄露、空指针问题,比如传入了null指针。
    3、Instruments ——— 使用子工具Leaks可以定位循环引用问题。
    4、block引用循环问题通常难以用工具检测出来,可以在对象的- (void)dealloc方法中打印日志来判断对象是否正常释放。
    5、条件断点 ——— 在普通断点中设置一定的条件,满足条件时断点才会触发,适用于循环结构中定位到具体某次循环。
    6、符号断点 ——— 可以用来快速定位unrecognized selector send to instance问题。

    相关文章

      网友评论

          本文标题:使用ExceptionsBreakpoint遇到的问题

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