Xcode调试技巧
日志输出&LLDB
什么是LLDB呢:它是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。我们可以简单的理解成它是一个调试器
1 命令行LLDB的出现
如下图,调试过程中程序运行到断点处时,控制台的右边会出 现“lldb”。
2 常用的命令
1 help
断点时,控制台输入”help“,回车,就能看到lldb命令及介绍
2 print
打印 常用p 代替
3 prin object
打印对象的详细信息 常用 po 代替
4 expression
可以在当前位置改变程序实际参数的值(不用重新运行项目) 使用过程中我们可以直接用 expr来代替expression。
5 call
一般调用没有返回值的方法时使用call 例如 在viewDidLoad中断点,然后输入
继续运行,view的背景就变成红色呢,很方便
6 image
mage list 查看工程中使用的库
image lookup –address 0x000000010e0979ac 程序崩溃的时候定位,查看具体报错位置 (不太好用)
断点
断点里面根据作用和功能也有很多种类:普通断点、条件断点、异常断点、符号断点等
普通断点
条件断点
打上断点之后,对断点进行编辑,设置相应过滤条件。单击右键会弹出选项框:
|
|
Edit BreakPoint。这里面设置断点的筛选条件(双击断点也可以快速进入编辑断点的对话框)。
|
|
异常断点 Exception Breakpoint(全局断点)
同样的,全局断点也是可以编辑的,单击右键或者双击断点就会弹出编辑框,编辑的项目和上述是一样的。
符号断点 Symbolic Breakpoint
4、监控断点
我们调试程序的大部分时候都是为了监控某个变量的变化,在代码中变量出现的地方添加断点不仅累而且还可能漏掉,事后还得一个一个删掉,实在很累。
我们可以通过为变量添加监控断点来简单地做到这一点。找到变量第一次出现的地方,添加一个普通断点,进入 debug 模式后在 Variables View 中右键变量,选择 Watch 变量名。这样,每一次该变量被改变都会触发断点告知我们