您的位置:首页 > 移动开发 > IOS开发

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

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

因为你可以创建符号断点(标志性的断点),在代码执行执行到这一句的时候,例如UIApplicationMain:



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

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



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



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

在查找BUG或者获取某个变量的值的时候,有些朋友喜欢用NSlog,但是我个人认为还是LLDB更好用一些,在控制台使用po语句输出,不需要再重新运行程序,可以运行一次多次获取变量的值,NSLog需要再次执行才可以得到变量的值,而自定义断点,可以在程序不被打断的情况下直接得到需要的值



一、1>使用expression语句执行表达式
可以在执行代码的过程中通过执行表达式来修改程序的值
例,运行过程中修改视图的颜色,在初始化view的下一句代码处打断点,



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



点击跳过断点之后的效果



视图原来的背景色



修改中之后的背景色



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



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

二、po即expression -O的缩写



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

输入help expression可以查看所有的expression信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: