LLDB 是 Xcode 自带的调试器,它提供了强大的命令行调试功能。相比于只使用断点调试,LLDB 可以让我们更深入地分析应用并跟踪问题的原因。
使用 LLDB 的步骤:
- 打开 Xcode,设置断点。
- 点击 debug 左侧的 debug 区域,打开调试视图。
- 在底部输入面板输入LLDB命令,按回车键执行。
- 常用命令:
- po [expr]:打印表达式的值。
- p [expr]:打印表达式的值,格式更丰富。
- fr v:查看所有变量的值。
- bt:查看调用堆栈。
- thread list:查看当前线程列表。
- thread select t1:选择线程 t1。
- step:逐步执行代码,步入方法内部。
- next:逐步执行代码,不进入方法内部。
- continue:继续执行。
- image lookup -r UIButton:查看UIButton类信息。
下面是一个使用LLDB的示例:
objc
- (void)viewDidLoad {
[super viewDidLoad];
int a = 10;
int b = 20;
int c = a + b;
}
设置断点后运行调试,输入以下LLDB命令:
(lldb) po a
a = 10
(lldb) p b
b = 20
(lldb) fr v
a = 10
b = 20
self = <ViewController: 0x7f97846027c0>
_cmd = "viewDidLoad"
c = 0
(lldb) bt
* frame #0: 0x0000000109923f50 ViewController.o`-[ViewController viewDidLoad] at ViewController.m:12
frame #1: 0x00000001098c57d0 UIKit.o`-[UIViewController loadViewIfRequired] at UIViewController.m:3877
frame #2: 0x00000001098c578c UIKit.o`-[UIViewController view] at UIViewController.m:3824
...
可以看到,通过LLDB我们可以更加自由地查看变量的值、调用堆栈等,这在调试复杂应用时会大显身手。