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