xcode 中一些有趣的东西
我们在用 Xcode 写代码调试 bug 时经常会用到 LLDB,一个很有趣的东西 🙄
expression
expression/expr/e 命令可以修改变量的值。
因为使用 p/po 命令可以查看某个变量的值。
那个$22感觉就像是这个变量指针,其实在 debug 的时候,$ 后面的这个数字会一直往上➕,只是一个调试的计数。
所以打断点的时候可以用 expression 命令来改变值。
frame variable/v
查看当前 frame 的变量
只要代码中的 log 不是那么杂乱的话,调试的时候是不大有必要在代码中添加 log 的,因为那样需要重新运行一遍代码,如果有几千个Compile Sources 那么就 GG😒
这个时候打个断点就比较方便。
最常见的是在左边显示行数的那栏点击添加,右键可以编辑(也可以使用 option+command+左键)
另一个比较常用的是打 Symbolic Breakpoint,比如
这样每次调用 viewDidLoad 方法的时候,都会进来。
Action有这么多
另外比较常用到的就是
F6:Step Over
F7:Step Into
F8:Step Out
另外的都是组合键,不大方便。
其他的比如用 Command+Y 来取消断点
还有的一些 bt 打印堆栈信息。感觉并没有直接看左边那栏方便;
image 命令用于寻址。
image lookup –address 0x000
不大常用。
有时候使用命令的时候会出现 unknown type 这种错误。
可以在前面加上(void).
比如打印 frame 的时候可以使用 p (CGRect)[self.view frame]
另外一些 Xcode 常用到的快捷键。
control+1:Show Related Items
control+2:Show Previous History
Control+5:Show Group Files
Control+6:Show Document Items
Command+F:Find
Command+option+F:Find and Replace
Command+Y:Deactivate BreakPoints
一些关于 LLDB 参考学习的文章
与调试器共舞-LLDB的华尔兹
LLDB 调试命令初探