美文网首页iOS自学行
iOS 简单常用的调试命令

iOS 简单常用的调试命令

作者: 码掺和_夏尼 | 来源:发表于2018-08-20 16:42 被阅读0次

1.显示、隐藏控制台命令

command + shift + y 或者 在xcode右上角的快捷按钮控制

console.png

断点触发后的LLDB几个简单常用的命令

1.打印视图的层级

cmd: po [view recursiveDescription]
e.g. 打印‘navigationbar’的层级结构

bar-hierarchy.png

2.打印变量

cmd: po var
当你需要变量地址信息时po命令可能无法给出,例如你的自定义对象重写了description方法:

@implementation RCTestLLDB

- (NSString *)description{
    return @"这个打印是没有地址的哦~";
}

@end

这时候就需要p命令来显示了,即print命令。

RCTestLLDB *lldb =[RCTestLLDB new];
//-------- 这是分割线 --------
(lldb) po lldb
这个打印是没有地址的哦~

(lldb) p lldb
(RCTestLLDB *) $4 = 0x0000000145280e70

(lldb) print lldb
(RCTestLLDB *) $5 = 0x0000000145280e70

(lldb) po $4
这个打印是没有地址的哦~

(lldb) p $5
(RCTestLLDB *) $5 = 0x0000000145280e70

(lldb) print $4
(RCTestLLDB *) $4 = 0x0000000145280e70
(lldb) 

p命令返回该变量的编号和变量对应的地址,$4代表自动分配的环境变量来表示打印的这个对象lldb

3.修改变量的值

cmd: e var
e命令,即expression命令可以让我修改变量的值来调试不同值的条件下程序的运行结果:

// 设置为nil
(lldb) e lldb = nil
(RCTestLLDB *) $6 = nil
// 打印修改后的值
(lldb) p lldb
(RCTestLLDB *) $7 = nil
// 重新创建对象
(lldb) expression lldb = [RCTestLLDB new]
(RCTestLLDB *) $9 = 0x0000000145283b10
///打印修改后的值
(lldb) po lldb
这个打印是没有地址的哦~

(lldb) p lldb
(RCTestLLDB *) $11 = 0x0000000145283b10
(lldb) 

相关文章

网友评论

    本文标题:iOS 简单常用的调试命令

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