LLDB 是 Xcode 中自带的一个调试工具 , chisel 是 facebook 开源的一个 LLDB 命令的集合,它简化和扩展了 LLDB 的命令,使用方法在 chisel github 中介绍的也比较详细。我在这里简单介绍一下,并结合我的使用经验,做些说明。
在 Xcode 控制台可以使用 help 命令查看所有支持的命令。 这里只介绍下面一些常用的命令:
上述 Command 的实现源码在 /chisel/commands/ 目录下
使用 help <command> 可以查看具体使用方法
pvc
pviews
pviews 打印的东西太多,"......" 省略了许多内容。想查找关心的 view,比较难查找,我们通过 help pviews 可以查看更详细的使用方法。
help pviews
我们加上 <aView> 和 -m 参数
pviews 0x7fda0000d760 -m
visualize
fvc enum
fv UIButton
hide 0x7fda0000d8c0
show 0x7fda0000d8c0
caflush
border
unborder
mask 0x7fda0000e7f0
unmask 0x7fda0000e7f0
presponder 0x7fda00015db0
bmessage
加载自定义 command 的过程,参考源码: fblldb.py : loadCommandsInDirectory()
实例: 新建 Python 文件 : ~/lldbCustom/threadcheck.py , 修改 ~/.lldbinit 文件 :
添加 yhct 命令 ,打印当前线程; 添加 yhctm 命令 ,打印当前线程是否是主线程;
在 Xcode 控制台执行 help visualize 命令,控制台打印如下:
根据最后一行打印的路径,我们打开 FBVisualizationCommands.py 文件如下 ( "......" 省略了一些无关信息) :
在控制台输入 visualize 0x7fda0000e7f0 命令,会执行 FBVisualizeCommand 类的 run(self, arguments, options) 方法 , 该方法实现里调用 _visualize(target) 方法。
_visualize(target) 方法的执行步骤如下:
自定义的 Command 需要添加脚本 script fblldb.loadCommandsInDirectory('/path/to/') 到 ~/.lldbinit 文件中, 该脚本中,重点调用了 fblldb.py 文件中的 loadCommandsInDirectory() 方法 ( "......" 省略了一些无关信息) :
该方法的执行步骤如下:
做的项目中需要引用SourceTrees定义路径里的头文件,刚开始没有头绪,稍加思索发现太简单了。此SourceTrees非彼SourceTree,是Xcode“偏好设置”中的一个选项,见下图:以上面的“QUICK_COCOS2DX_ROOT”一项为例,我遇到的问题是想在工程中引用这个路径下include文件夹里的头文件。一般情况下如果想把某个文件夹中的头文件加入到工程中,可以在BuildSetting中的HearderSearchPath里添加形如$(SRCROOT)/..之类的路径,而$(SRCROOT)其实就是.xcodeproj文件所在的路径。其实,在上图SourceTrees中定义的QUICK_COCOS2DX_ROOT与SRCROOT的作用等同,都是充当路径的别名的。那么照葫芦画瓢,想引用别名为QUICK_COCOS2DX_ROOT路径下include文件夹里的头文件,就在BuildSetting中的HearderSearchPath里添加$(QUICK_COCOS2DX_ROOT)/.include路径就行了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)