iOS开发中常用的LLDB命令

更多命令可以查阅:The LLDB Debugger

1.po + 对象

(lldb) po self.view
>

2. p + xx

可以是基础类型或者对象,但p+对象不会打印出详细信息只有内存地址。 打印下面count时如果使用点语法则console会报错,应该调用get方法。另外注意加上类型转换console才知道怎么处理。

(lldb) p (int)[ [ [self view] subviews] count]
(int) $1 = 2

也可以用po打印出基础类型

(lldb) po (int)[ [ [self view] subviews] count]
2

3.expr (expression)

使用expr改变变量的值,还没找到swift中的操作方法

expr name = @"Kevin Durant"
(__NSCFString *) $2 = 0x00007fe143d01e20 @"Kevin Durant"
iOS开发中常用的LLDB命令_第1张图片

4.断点

断点可以设置条件,action(如打印,debugger命令等)


iOS开发中常用的LLDB命令_第2张图片

5. bt命令

debug模式下,程序crash后,进入lldb模式:
在终端输入bt 命令,Xcode会自动输出最后的一次调用堆栈:

iOS开发中常用的LLDB命令_第3张图片

里面有 stop reason 等信息,从截图中可以看到 [ViewController touchesBegin:withEvent:] 方法中出了问题。

6. 对于一些经常po不出来的属性,可以先导入框架,如下图:

iOS开发中常用的LLDB命令_第4张图片
expr @import UIKit
p UIScreen.mainScreen.bounds

7.打印NSData中的内容

正常情况下po NSData只会得到一堆二进制数据,而不是内容。常用的打印NSData内容的方法是转成NSString再打印NSString。
下面是直接得到NSData内容的方法:

po [data bytes]

会输出内存地址


iOS开发中常用的LLDB命令_第5张图片
这里写图片描述

然后在内存中搜索就能看到内容


iOS开发中常用的LLDB命令_第6张图片
iOS开发中常用的LLDB命令_第7张图片

你可能感兴趣的:(iOS开发中常用的LLDB命令)