[断点调试好助手]LLDB调试

本文介绍如何使用LLDB调试iOS应用,包括设置断点、查看对象属性、修改变量值及调用方法等技巧。

初学者刚入门一般都不认识有这一调试工具,学习成本不高,你只要尝试在调试中开始使用调试器LLDB,你会马上感受到调试器给你带来的便利。LLDB是LLVM下的调试器。Xcode从4.0开始编译器开始改用LLVM,相应的调试器也从gdb改为LLDB。而从 Xcode5.0开始所有工程也被自动设置为使用LLDB。

这里借鉴整理了一下别人的blog,作为学习笔记记录供各位参考

使用方法

  • 先在需要调试的地方进行打断点,然后运行程序,停止在断电处后…会出现(lldb)字样(在NSLog显示信息的位置(调试框内),单击后便可以输入…)
  • 输入命令进行操作

常用命令:

po

  • po [self view] 随后调试器会输出这个 object 的 description。
  • 在这个例子中可能是这样的信息:
(lldb) po [self view]
- (UIView *) $1 = 0x0824c800 <UITableView: 0x824c800; frame = (0 20; 768 1004); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x74c3010>; layer = <CALayer: 0x74c2710>; contentOffset: {0, 0}>
  • p (int)[[[self view] subviews] count]
(lldb) po $1
(UIView *) $1 = 0x0824c800 <UITableView: 0x824c800; frame = (0 20; 768 1004); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x74c3010>; layer = <CALayer: 0x74c2710>; contentOffset: {0, 0}>

expr

修改值

int i = 2;
(--断点在此)
NSLog(@"i = %@",i);
(lldb) expr i=2

你会看到如下的输出:

(int) $0 = 2

继续运行程序,程序输出的信息是:

i = 2

变量a的值被改变
除此之外,还可以使用这个命令新声明一个变量对象,如:

expr int $b=2
p $b

call

call
call即是调用的意思。其实上述的po和p也有调用的功能。因此一般只在不需要显示输出,或是方法无返回值时使用call。 和上面的命令一样,我们依然在viewDidLoad:里面设置断点,然后在程序中断的时候输入下面的命令:

call [self.view setBackgroundColor:[UIColor redColor]]

运行程序,view的背景颜色变成红色了!

bt

打印调用堆栈,加all可打印所有thread的堆栈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值