iOSDebug调试之LLDB命令
2018-05-08 本文已影响253人
PersonChen_QJ
认识LLDB
控制台.png
- LLDB是XCode内置的为我们开发者提供的调试工具,它与LLVM编译器一起,存在于主窗口底部的控制台中,能够带给我们更丰富的流程控制和数据检测的调试功能。在调试过程中熟练使用LLDB,可以让你debug事半功倍。
作用
- 允许你在程序运行的特定时暂停它
- 查看变量的值
- 执行自定的指令
- 按照你所认为合适的步骤来操作程序的进展
控制台功能(如上图,这里介绍前六个功能点)
- 第一个按钮点击就会收起控制台了,也就看不见了。
- 第二个按钮:如果为蓝色,就是断点有效。如果点击它变成灰色,就是所有断点不起作用。
- 第三个按钮:是继续的意思,会让程序从断点处恢复继续往下运行,我们点了这个按钮后,应用就会恢复正常运行状态。
- 第四个按钮是:单步执行的意思,每点这个按钮一次,程序就会从我们断点开始的地方,向下执行一步。
- 第五个按钮是:进入执行的意思,简单来说就是如果我们当前的断点在一个函数调用上,把么断点会继续进入这个函数的内部进行调试。
- 第六个按钮是:跳出的意思, 就是如果我们当前在一个函数中,它会跳出当前的函数,回到函数的调用处。
常用的命令(p、po、call)
- 作用
- 打印变量的值可以使用print(简写p)命令,该命令如果打印的是基础数据类型,则会列出基础数据类型的类型和值。如果是对象,还会打印出对象指针地址。
- 查看对象的值使用 po命令。
- call是调用方法,和p,po也有此功能,call可以使用在没有返回值,不需要显示输出的情况下。
- 使用场景
查看值.png 方法调用.png
- 三个命令都具有相同的功能,若只查看对象的值则使用po命令。若要查看更新信息则使用p命令。
- 调用方法且方法无需返回值时使用 call 命名。若需要返回值,则根据实际情况,使用p或者po命令。
声明变量(e)命令
- 作用
e命令.png 修改背景颜色和对象的值.png
- 在bebug期间定义变量,常量,对象。然后在调试中使用
*使用场景- 在bebug期间临时计算某个值,无需修改项目代码。无需重新编译。
- 在bebug期间修改程序内修改项目内某个变量,对象的某个值,修改背景颜色等。无需重新编译。
设置断点触发条件
- 作用
断点.png
- 可以减少因为循环而产生的不必要时间浪费。
- 可以使控制台打印的信息更具有价值。
- 更容易检索有用的信息。
结尾
- lldb的命名不止这么多,此上仅代表个人在开发中常用的命令。更多命令可控制台输入help查看更多命令。
- 想要查看更多操作,可查看。