IOS 中什么是 LLDB?如何使用?代码举例讲解

LLDB 是 Xcode 自带的调试器,它提供了强大的命令行调试功能。相比于只使用断点调试,LLDB 可以让我们更深入地分析应用并跟踪问题的原因。

使用 LLDB 的步骤:

  1. 打开 Xcode,设置断点。
  2. 点击 debug 左侧的 debug 区域,打开调试视图。
  3. 在底部输入面板输入LLDB命令,按回车键执行。
  4. 常用命令:
    • 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我们可以更加自由地查看变量的值、调用堆栈等,这在调试复杂应用时会大显身手。