返回

iOS LLDB 调试技巧

IOS

作为 Xcode 工程中的默认调试器,LLDB 取代了 GDB,带来了强大的调试功能。本指南旨在提供 iOS LLDB 调试的实用技巧,帮助开发者快速上手并有效解决问题。

要点

  • LLDB 调试的先决条件是设置断点。
  • 调试命令必须在控制台中输入。
  • 通过键入前三个字符或使用 ... 可触发命令自动补全。

命令概览

调试会话控制

  • bbreak:设置断点
  • nnext:单步跳过
  • sstep:单步进入
  • ccontinue:继续运行
  • rrun:从头运行

内存检查

  • pprint:打印变量值
  • poprint object:打印对象值,包括内部属性
  • xexamine:检查内存内容

堆栈追踪

  • btbacktrace:打印调用堆栈
  • frame:切换到指定堆栈帧

高级功能

  • po [expression]:动态求值表达式
  • expr:以 C 语言求值表达式
  • script:执行 Lua 脚本

LLDB 命令行技巧

  • 使用 Tab 键进行命令自动补全。
  • lldb 提示符后输入 help 可获取命令帮助。
  • ^D 可重复执行前一个命令。
  • 使用 history 命令查看命令历史记录。

iOS 特定技巧

  • expr [variable]:获取 iOS 变量值的地址。
  • poprint object:打印 Objective-C 对象。
  • expr -l objc -O -- ${object}:输出 Objective-C 对象的。

用例示例

检查变量值:

(lldb) p variableName

单步进入方法:

(lldb) s -n 5

打印对象:

(lldb) po myObject

求值表达式:

(lldb) po [10 + 20]

运行 Lua 脚本:

(lldb) script lldb.target.modules[0].functions[0].basic_block_infos[0].instructions[0].dump()

**