iOS断点使用

作者: 码工人生 | 来源:发表于2021-11-20 22:45 被阅读0次
    iOS实际开发中,我们经常会用到断点调试,一般很多使用的只是简单功能。这里介绍几个你可能需要知道的小技巧,会提升你的调试效率。

    一、条件语句Condition的使用

    image.png
    使用场景:有个公共方法funcComon(),可能被多处调用(比如被A、B、C、D...),其实我们只想知道在被C调用时,funcComon()的数据,此时就可以用Condition了。

    下面我模拟个例子,比如有个循环,我想知道第10次调用时的数据,我就可以在Condition里写上 条件语句 i == 10,满足该条件时,断点才生效。


    image.png

    当然还有笨办法,不在断点里加,直接写个if(i==10)的代码判断语句。综合对比还是直接在断点里加Condition 更方便。


    image.png

    二、Action的使用

    Action是指触发断点时,你还想执行哪些附加操作:

    Debugger Command
    1、使用较多的就是控制台打印变量信息,如图
    image.png
    2、改变数据,满足指定条件,方便调试,通过lldb 的 expression 命令

    本来方法调用方传来的是“张三”,通过expression 修改,最后变为 李四。


    image.png

    三、全局符号断点

    当执行到对应的函数名时,就会触发,有多个相同的方法名,就会对应的触发。

    使用场景,工程结构比较复杂,分的bunddle比较多,调用关系比较复杂,但是我知道最后的调用方法为funA(),想知道调用栈,就可以使用全局符号断点。
    image.png

    符号断点使用时,要注意一下几点:

    1、方法名不带参数、带参数、带多个参数时,空格和分号要使用正确
    -[UIViewController viewDidLoad]
    -[UIView addSubview:]
    -[UIViewController dismissViewControllerAnimated:completion:]
    
    2、属性的调试技巧,一般都是用setXXX
    -[UILabel setNumberOfLines:]
    
    3、通过lldb获取对应的信息
    po $arg1 //对象本身,调用的类
    po (SEL)$arg2 //是方法第二个参数也就是 SEL
    po $arg3 //第一个参数
    
    image.png
    参考

    iOS 断点调试
    最全面的 iOS 断点调试
    Xcode symbolic breakpoints - Break at method call

    相关文章

      网友评论

        本文标题:iOS断点使用

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