LLDB简介
LLDB是LLVM下的调试器。Xcode从4.0开始编译器开始改用LLVM,相应的调试器也从gdb改为LLDB,而从 Xcode5.0开始所有工程也被自动设置为使用LLDB。
相比于原先的GCC编译器,LLVM编译器有如下优点:
- LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.
- LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.
- LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编辑的时候就可以很好的了解你的代码.
输出对象
在LLDB中提供了po和p两个命令来输出对象或变量的值,其中:
- po代表print object,可以输出一个对象description方法中可以打印的内容;
- p代表print,可以输入变量的值。
断点管理
在Xcode中,可以在代码的任意位置添加断点(breakpoint),对于断点的管理本质上也是由LLDB操作的,只不过通过图形化的方式实现了LLDB中的命令。
LLDB中有关断点管理的常用命令有:
- 查看所有断点:breakpoint list (简化命令br l)
- 继续执行:continue (简化命令c)
- StepOver: next (简化命令n)
- StepIn: step (简化命令s)
- 取消某个断点: breakpoint disable 断点编号 (简化命令br dis 断点编号)
- 删除某个断点: breakpoint delete 断点编号 (简化命令br del 断点编号)
- 终止程序运行:kill
查看栈地址对应的代码位置
image 命令可用于寻址,有多个组合命令,比较实用的用法是用于寻找栈地址对应的代码位置,在查错过程中是可以使用。
- 查看地址对应的代码位置:image lookup --address 内容地址(简化命令im loo --a 代码位置)
更多iOS开发教程,欢迎访问我的博客:www.99ios.com