文章目录
LLDB是一个有着REPL 的特性和C++, Python插件的开源高性能调试器,Mac OS X上Xcode的默认调试器,支持在桌面和iOS设备和模拟器上调试。
LLDB绑定在Xcode 内部,存在于主窗口底部的控制台中,可以在需要 时暂停程序,查看变量的值,执行特定的指令,并按指定的步骤来操作程序的进展。
expression
简写 e,执行的一个表达式
- 查询当前堆栈变量的值
- 动态修改当前线程堆栈变量的值
po & p
po 的作用是打印对象,(本质是 expression -0 --
的简写),可以通过它打印对象,而不是对象的指针,它会尝试调用对象的description
方法来取得对象信息。所以必要时重写 description
方法,调试时能获得可读性更强更你下面的信息。
p 即 print,(本质是expression --
的简写),它不会打印出对象信息,它只打印地址信息。打印时也可以指定特定格式。
- x :十六进制打印
- d:十进制打印
- u:无符号十进制打印
- o:八进制打印
- t:二进制形式打印
- f:浮点数
堆栈
bt即 thread backtrace,作用是打印出当前线程的堆栈信息。
thread return ,调试的时候,
如果想在当前执行的程序堆栈直接返回一个自己想要的值,可以执行该命令直接返回。
frame variable展示当前作用域下的参数和局部变量