Xcode 中的调试技巧与我们的日常开发息息相关,而这些调试技巧在我们解决Bug时,常常有事半功倍的作用,经常会用到的有各种断点 和 命令。而这些调试技巧也经常会在面试中问到,所以不知道的就来看看吧。
调试主要观看区
调试命令
在上图中,右侧绿色区域就是Log 输出区,在 Log 输出区可以使用一些命令,来辅助调试。 那有哪些调试命令呢? 想要看所有的调试命令,可以在上图的右侧区域输入help
,就会列出所有的调试命令。 本文就介绍几个使用频率比较高的,其他就查看后,自行了解吧。
1. p 命令
– (‘expression --’) Evaluate an expression on the current thread.
Displays any returned value with LLDB’s default formatting.
p 命令是 print 命令的简写,使用p 命令可以查看基本数据类型的值,但是如果 使用 p 命令 查看的是对象,那么只会返回对象的指针地址。 p 命令后面除了可以接 变量、常量,还可以接 表达式。(❌但是不可以使用宏❌)
2. po 命令
po 命令可以理解为打印对象。功能与 p 命令类似,所以也是可以打印 常量、变量,打印表达式返回的对象等。(❌也不可以打印宏❌)
p 和 po 使用范例
当然,这些打印功能,除了使用命令外,我们也可以使用左侧区域,点击变量右键—> print Description of “xxx”:
Paste_Image.png
当然还有其他的打印方法:
3.expr 命令
expr 是 expression 的简写, 使用expr 命令,能够在调试时,动态的执行赋值表达式,同时打印出结果。我们可以在调试时,动态的修改变量的值,这在调试想要让应用执行异常路径(如执行某个else 情况)很有用。
(lldb) p i
(NSInteger) $16 = 1
(lldb) expression i = 5
(NSInteger) $17 = 5
(lldb) po i
5