最近在github上看到Facebookd的一个关于lldb调试的一个第三方chisel,用了一下,感觉里面有一些东西还是挺有意思的,就记录一下。github地址是chisel具体介绍
要想使用这个工具,首先需要在电脑上安装一下chisel,具体步骤在github上有详细介绍,这里我简单介绍一下,有什么问题可以再去github看详细介绍或者自行百度。
- 安装chisel 命令是:brew install chisel 至于安装brew命令,请自行百度
- 打开终端,直接在用户目录下创建.lldbinit文件(touch .lldbinit),如果用或者创建完场以后用open命令打开该文件(open .lldbinit)。这个文件是隐藏文件,在finder中看不到,用command + shift + . 可以查看隐藏文件,再按一次可以隐藏。
- 打开.lldbinit文件,将command script import /usr/local/opt/chisel/libexec/fblldb.py 复制进.lldbinit文件。然后重启Xcode,chisel就已经安装成功了。
打开xcode,运行项目,点击调试台的暂停,在控制台打印help,会出现很多调试的命令,如果出现如图所示的命令,则证明chisel安装成功
然后我们就可以用这些命令来做一些调试了,下面介绍几个简单命令的使用。
1.pvc 可以看到当前控制器所在的栈的所有出入栈的控制器可以看到,当前显示的控制器后面没有not in the window,当前显示的怎没有这个标记。用这个方法,可以用来方便的查看控制器,如果接手一个不熟悉的工程,用这个可以很方便的帮我们梳理控制器。
2.pviews + View地址 可以看到当前地址指向的View上的所有子视图对于复杂的Xib,可以让我们比较容易的看清层级。
3.border命令可以帮我们在一个控件上添加一个边框具体用法是border -c red(这里写颜色) -w 2(这里写宽度) 0x129af63a0(这里写View的地址).在xcode里面有一个自带的工具,比这个更加方便,在xcode -> Debug -> ViewDebugging -> show view frames 这个可以直接把所有的控件加上边框,但是这个颜色不能定义。
4.和border命令相对应的是unborder命令,用法一样,作用相反。
5.pclass + 地址 可以查看该控件的继承关系
6.show/hide + 地址 可以直接显示或隐藏某个控件。
7.pinternal 地址 可以查看一些控件的属性 继承关系 有一些私有熟悉 和自定义属性。
chisel里面还有很多命令,我这里就暂时介绍这么多,有兴趣的可以自己使用试一下。