lldb命令
p -> print
po ->print object
expr -> expression
for(int i = 0;i<10;i++)
{
NSLog(@"%d",i);
}
p object_getClassName(self.stack)//查看类型等价于代码[self printClasses:self.stack.calss]
p i // 显示 $0 = i的值 $0的这个数字只是表示这是第0次查询 再查一次就是1了
p i // $1 = i的值
po i // 直接显示i的值
expression i = 9 //直接将i的值动态变为9 如果此时再进行下一次循环 就会直接结束
image lookup --address 栈地址//一般是发生冲突的时候通过找最小的栈地址输入 然后可以找到crash在哪一行(为什么是最小的不太懂)
image lookup --type 类名 //查看指定类的信息
call NSLog("sd"); //直接就是在当前位置可以执行函数
watchpoint set variable self.stack._arr //可以在值改变的时候看到新旧值
image例子
通过栈地址查看crash冲突的代码的位置
查看类的具体信息
开启僵尸对象
条件断点
右键 edit breakPoint 然后在condition中输入 例如i == 3
符号断电 symbolic Breakpoint
对特定的函数名下断点 它并不是在代码的某一行设置一个断点 而是直接在整个文件里面添加一个断点 比如设置一个NSLog函数的断点 当代码里面执行到了NSLog就会进行调试。
点+号添加一个Symbolic Breakpoint
也可以写类名和函数 [A func]也可以
watch断点 当某个变量发生改变会触发这个断点
当某个变量发生改变会触发这个断点
线程断点 不太会用
异常断点
同样是+号 Exception breakpoint
目前直接加这个就行了,如果有crash报错在了main方法里面。也就是你找不到哪里出问题了你加个这个就能知道了
断点后Action
也可以输出log
查看预编译后的代码
快捷输入代码
以后只需要输入LogF自动就会跳出来补全
想与设置输入"<#code#>"
提醒 #error
快捷键
commond shit o 快速找文件
control + shift + click 多光标
control + i 自动对齐缩进
command + shift + o 应该是在工程文件内快速搜索
推荐一个终端仓库
terminals are sexy