XZ_iOS之控制台使用LLDB去po打印相关信息

使用更强大的断点功能
我们经常使用断点功能,但是我看大多数朋友仅仅使用常规的断点调试功能。
其实还有很多你能做的,例如,你可以 自定义 您的断点,让他们在全局的工程中发挥作用,你为什么要这样做呢?

因为 你可以创建符号断点(标志性的断点), 在代码 执行 执行到这一句的时候 ,例如 UIApplicationMain :
XZ_iOS之控制台使用LLDB去po打印相关信息_第1张图片

你看懂我在这里做了什么了嘛?

现在每当我做任何项目的调试工作时,我得到的不是

我可以直接得到这些信息,不需要额外的步骤。


原文地址: http://merowing.info/2015/12/little-things-that-can-make-your-life-easier-in-2016/

在查找BUG或者获取某个变量的值的时候,有些朋友喜欢用NSlog,但是我个人认为还是LLDB更好用一些,在控制台使用po语句输出,不需要再重新运行程序,可以运行一次多次获取变量的值,NSLog需要再次执行才可以得到变量的值,而自定义断点,可以在程序不被打断的情况下直接得到需要的值
XZ_iOS之控制台使用LLDB去po打印相关信息_第2张图片
一、1>使用expression语句执行表达式
可以在执行代码的过程中通过执行表达式来修改程序的值
例,运行过程中修改视图的颜色,在初始化view的下一句代码处打断点,


在控制台使用下面语句进行修改,我先使用了自定了一个RGB颜色不可以,换成系统的就可以了
expression -- self.view.backgroundColor = [UIColor purpleColor];
将命令写到控制台中点击Enter键,看到程序输出“(UICachedDeviceRGBColor *) $10 = 0x7b0bb1a0”就说明修改成功了,然后点击跳过当前断点,就可以看到效果了
XZ_iOS之控制台使用LLDB去po打印相关信息_第3张图片

点击 跳过断点之后的效果


视图原来的背景色

修改中之后的背景色

2> 打印值
(注意:①因为这个命令使用原始输入,如果你使用操作命令,你必须在操作命令之后和原始命令之间加--,官方文档是这么说的,但是我没加也可以打印出来,加一个-的时候打印不出来 ;②变量也是表达式)


注意:LLDB遵循“唯一匹配原则”:如果一个单词的前几个字母足以表示这个变量名,且没有重复的变量名跟这个单词的前几个字母相同,那么输入前几个字母就等于输入了这个变量。

二、po即expression -O的缩写

LLDB使用 “expression -O 对象名”来打印对象。


输入 help expression可以查看所有的 expression信息。


你可能感兴趣的:(iOS)