iOS--Chisel记录

最近看看针对LLDB命令扩展的Chisel,感觉很实用。记录下,备份
对于只会po的我感觉打开新世界的大门。。。

仓库地址
Chisel

下面基本就是readme翻译和我实践记录了

安装

brew update
brew install chisel

~路径下创建.lldbinit文件

touch .lldbinit 
open .lldbinit

输入命令

command script import /usr/local/opt/chisel/libexec/fblldb.py

使用

1 pviews

; layer = >
   | >
   |    | >

查看层级视图。感觉这个不如XCode自带的debug view hierarchy直接。但是也不错

2 pvs
打印当前VC描述
感觉 可能 用不到

(lldb) pvc
, state: appeared, view: 

3 visualize
查看image相关 view

感觉这个是神器,不过swift4报错..待填坑

看到有人提issue,也没回应
issue

4 fv
应该 find views的缩写吧
参数是正则

(lldb) fv UIView
0x7fc232703d20 UIView
0x7fc23240dc70 UIView
(lldb) fv UIVie+
0x7fc232703d20 UIView
0x7fc23240dc70 UIView
(lldb)

5 fvc
同 find vcs

6 show/hidden
查看隐藏视图
感觉这个也是在debug view hierarchy中的功能

(lldb) hide 0x7fc23240dc70
(lldb) show 0x7fc23240dc70

7 mask/unmask
在当前视图遮罩

(lldb) mask 0x7fc23240dc70
(lldb) unmask 0x7fc23240dc70

感觉就是addSubview/SubLayer


image.png

8 border/unborder
给视图加一个边框实现

(lldb) border 0x7fbefdc00f00
(lldb) 

感觉这个不错


9 caflush
刷新渲染服务器(如果没有动画,就相当于“重新绘制”)。
感觉 用不到 没有使用场景

caflush

10 bmessage
在类的方法或实例的方法上设置一个符号断点,而不用担心层次结构中的哪个类实际实现了这个方法。
神器神器 我们自定义的方法中可以打断点。系统实现的方法就懵逼啊

(lldb) bmessage [0x7fcc17c15fc0 setFrame:]
Setting a breakpoint at -[UIView setFrame:] with condition (void*)(id)$rdi == 0x00007fcc17c15fc0
Breakpoint 2: where = UIKit`-[UIView(Geometry) setFrame:], address = 0x000000010e2d44f2
1
image.png

11wivar
watch ivar 观察变量
貌似swift4 不行

error: error: use of undeclared identifier 'aa'
Traceback (most recent call last):
  File "/usr/local/opt/chisel/libexec/fblldb.py", line 84, in runCommand
    command.run(args, options)
  File "/usr/local/Cellar/chisel/1.8.0/libexec/commands/FBDebugCommands.py", line 40, in run
    objectAddress = int(fb.evaluateObjectExpression(commandForObject), 0)
TypeError: int() can't convert non-string with explicit base

12 presponder
打印链式的起点
感觉也nice

13 help
查看所有命令

你可能感兴趣的:(iOS--Chisel记录)