Xcode - 使用 chisel 提高 LLDB 调试效率
变更记录
序号 | 录入时间 | 录入人 | 备注 |
---|---|---|---|
1 | 2016-01-08 | Alfred Jiang | - |
方案名称
Xcode - 使用 chisel 提高 LLDB 调试效率
关键字
Xcode \ 调试 \ 断点 \ 页面 \ 约束
需求场景
- 需要对复杂页面进行调试时
参考链接
详细内容
安装
1. 安装 Homebrew (如果已经安装了,可以跳过这一步)
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
2. 更新 Homebrew (如果已经最新了,可以跳过这一步)
brew update
3. 通过 Homebrew 安装 chisel
brew install chisel
4. 添加 chisel 命令至 ~/.lldbinit
touch ~/.lldbinit
echo “command script import /usr/local/opt/chisel/libexec/fblldb.py” >> ~/.lldbinit
5. 更新 chisel
brew upgrade chisel
使用
1. 通过 pviews 命令直接查看页面层级关系
2. 通过 border & unborder 命令为页面控件添加和删除边框颜色和边框的宽度
1 | (lldb)border 0x79ec3140 -c green -w 2 |
3. 通过 paltrace 命令查看是否存在 Ambiguous Layouts(AMBIGUOUS LAYOUT 即为约束冲突或不完善位置),该命令相当于对 View 调用 _autolayoutTrace
1 | (lldb) paltrace |
4. 通过 alamborder & alamunborder 命令为 Ambiguous Layouts(AMBIGUOUS LAYOUT 即为约束冲突或不完善位置)控件添加和删除边框颜色和边框的宽度
1 | (lldb)alamborder |
5. 通过 pinternals 命令打印对象成员变量( model 为某实例对象)
1 | (lldb) pinternals model |
6. 使用 pkp 命令打印属性,该命令是 po 命令的升级版,po obj.xxx 是调用 getter 方法,如果没有 getter 方法就无法打印了。 pkp obj.xxx 优先调用 getter 方法,没有 getter 方法会直接查找成员变量。
1 | (lldb) pkp self.view |
7. 通过 flicker 命令查看 View,将 View 闪烁一下,以便于查找 View 的位置
1 | (lldb) flicker self.subView |
8. 通过 caflush 命令更新 UI, 该命令主要用于通过 LLDB 修改界面控件显示属性之后刷新页面
1 | caflush |
9 通过 show & hide 命令显示和隐藏页面显示控件
1 | (lldb) show 0x7fe713901f10 |
10. 通过 visualize 命令打开mac下的预览app打开我们的图片UIImage, CGImageRef格式的图片,甚至view和layer的图片
1 | (lldb) visualize image |
更多命令使用请关注 参考链接
效果图
(无)
备注
(无)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 宁静至远,博雅多通!