LLDB中的小技巧

1、打印视图层次结构
po [self.view recursiveDescription]
 
2、临时调整界面UI
     比如说现在你需要改变一个控件的背景色来更好的查看布局的问题,这是就不需要重新跑一下项目:
     
然后继续执行代码就可以实现更改。call命令也可以实现这个效果。
     说是执行(lldb) e (void)[CATransaction flush] 就不用等到继续执行就能看到效果,但是通过实验并没有达到想要的效果。
     e 命令还可以定义变量,然后再调试中使用:
        我们可以使用e命令定义变量,然后在调试中使用。看如下的例子:
1
2
3
4
5
6
7
8
9
10
11
12
 
(lldb) e NSString *$str = @"http://www.huangyibiao.com"
(lldb) po $str
http://www.huangyibiao.com
 
(lldb) e int $count = 10
(lldb) p $count
(int) $count = 10
(lldb) e NSArray *itemArray = @[@"Test", @"Demo", @"huangyibiao"]
(lldb) po $count
10
 
 
我们使用e声明了$str变量,然后下面就可以使用了。我们看到通过p命令打印出来的都是$开头的变量了吗?我们在声明和使用时也需要加上$符号,与PHP一样!
在调试时,有时候想临时计算一下某个值来比较时,就可以通过这种方式来实现了,再也不用到源代码处添加上声明实现然后添加一句打印了,是否便利了很多?
3、修改变量值
     expr variable = newValue
     
4、监测某一个内存地址的内同改变
     watchpoint set -v variable
如下图:
   
5、条件断点
     在“Edit Breakpoint…”中可以填入需要满足断点的条件,满足条件就会断住程序。
     其中还可以添加action:

 

     同时也可以在Debugger中修改变量的值,同样适用expr,如下图:
下面打上勾是让程序运行到这个位置不被断住。
     也可以在Log Message 中实现在调试过程中不用加入NSLog就能方便的输出日志的需求。
6、随着xcode版本的跟新,好多以前可以在debug中的堆栈信息中看到函数的调用顺序,但是,现在的xcode隐藏了一些信息,如果想看完整的调用堆栈就使用bt命令,显示函数调用的堆栈。
原文地址:https://www.cnblogs.com/lujianwenance/p/5702699.html