LLDB学习
2017-02-21 本文已影响0人
冰室主人
p p/s 输出地址和具体的值 po输出具体的值(oc里所有的对象都是用指针表示的,打印出来的是对象的指针,而不是对象本身,可以采用 -o 来打印对象本身 为了更加方便的时候,LLDB为 “expression -o —” 定了一个别名 :po,expr在lldb中声明新的变量时,需要加上$符号,表示引用
![](https://img.haomeiwen.com/i2837346/87ab6a379e9f4aa8.png)
)
![](https://img.haomeiwen.com/i2837346/f7fa7daecb60bf4e.png)
打印视图的UI
![](https://img.haomeiwen.com/i2837346/b4383f73f07567ba.png)
expression(可以缩写成e)重新赋值 e var=newValue
b refreshUI(方法名) b 行数 设置断点
通过ID拿到view的引用,然后设置它的属性
![](https://img.haomeiwen.com/i2837346/db3149b91a8ae05a.png)
expression -- self.view.backgroundColor=[UIColor redColor]//改变背景颜色
expression -- (void)[CATransaction flush]//刷新屏幕
当我们有一个地址,想找到具体地址对应的文件的位置的时候,可以使用 target modules lookup —adress命令
也可以简写为 target modules lookup -a
随着LLDB版本的更新,target modules 又可以简化为 image
所以 target modules lookup -a 可以写为 image lookup -a
image lookup -a 0x0000000102c15685//crash抛出的地址
方法默认情况下返回的是YES我们想观察它返回NO的情况,我们只需要在这个方法的开始位置 加一个断点,当程序中断的时候, 在LLDB控制台输入 thread return NO 这样程序就会直接跳出 isRunning 方法
thread return NO
p (int)[[[self view] subviews] count]//子视图的数量
//查看代码总行数
先cd 到项目文件目录下
find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l