美文网首页值得学习iOS博客
iOS开发中常用的LLDB命令

iOS开发中常用的LLDB命令

作者: 毅个天亮 | 来源:发表于2017-07-05 16:22 被阅读21次

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

1.po + 对象

(lldb) po self.view
<UIView: 0x7fe93bd21bf0; frame = (0 0; 414 736); autoresize = W+H; layer = <CALayer: 0x7fe93bd028a0>>

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"

4.断点

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


5. bt命令

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


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

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

expr @import UIKit
p UIScreen.mainScreen.bounds

7.打印NSData中的内容

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

po [data bytes]

会输出内存地址


这里写图片描述

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


相关文章

网友评论

    本文标题:iOS开发中常用的LLDB命令

    本文链接:https://www.haomeiwen.com/subject/ukuqhxtx.html