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命令,显示函数调用的堆栈。