本文首发地址:
前言
据说,是否熟练掌握 lldb 相关的命令,可以快速判断 iOS 工程师的 level
本文所实现的功能已经合入到 chisel的开发分支上面。
欢迎follow我的github https://github.com/sunbohong
入门
为了避免浪费你的时间,在阅读本文前,请先思考以下问题:
- 你是否经常使用Xcode的断点功能?
- Xcode的断点功能好用吗?
- 如果给Xcode批量添加启用&禁用断点功能,是否会提高你的工作效率?
如果都是NO,那么,请先阅读 https://objccn.io/issue-19-2/ 后再回来阅读本文章。相信我,掌握甚至精通lldb能够快速的提供你的生产力。
如果以上问题都是YES,那么,欢迎继续阅读以下内容。
阅读本文需要以下技能:
- 对 Python 有基本的了解
- 对 Xcode 的断点功能有基本的了解(相关的文档见下方的参考链接)
通过本文,希望大家可以了解以下内容:
- 了解 lldb 的API架构
- 通过 lldb 相关 API,构建自己的效率工具(Python脚本)
LLDB
LLDB 是一个开源调试器,它已经被内置在 Xcode 程序中。
如下图所示,位于主窗口的底部,名为Conseole的窗口就是用于和 lldb 交互的区域。
断点
首先,通过以下操作,对lldb有基本的了解。
- 创建一个程序
- 在
viewDidLoad
处添加添加断点 - 运行程序,并使程序停在断点处
- 在 Console 区域输入
po self
并回车 - 观察输出结果
当程序暂停后(通过断点或者手动点击暂停按钮),Console 区域就会进入 lldb 模式。
po self
是指把 self 当做一个对象进行打印,类似的还有 p self
等命令