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

<UIWindow: 0x7fcbb0b1b360; frame = (0 0; 375 812); gestureRecognizers = <NSArray: 0x60400005cd40>; layer = <UIWindowLayer: 0x60400003ba20>>
   | <UIView: 0x7fcbb0a05040; frame = (0 0; 375 812); autoresize = W+H; layer = <CALayer: 0x608000036a20>>
   |    | <UIImageView: 0x7fcbb0a05220; frame = (67 170; 240 128); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x608000037100>>

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

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

(lldb) pvc
<ChiselTest.ViewController 0x7fcbb0b1aa30>, state: appeared, view: <UIView 0x7fcbb0a05040>

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
查看所有命令

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,664评论 1 180
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,065评论 8 183
  • 增强现实学习 手机同屏方式 手机学的工具变了 码书 umu互动平台 手机让实验方式变了 课的形态变了 游戏化学习
    海昌许老师阅读 302评论 0 0
  • 提起笔总想写点什么,今天上午开会的时候,说到规则,副校长说到大家都要遵守规则,如果有人不遵守的话,那就要找他的...
    冯闯lzosve阅读 237评论 0 0
  • 11月2日周四,晴,今天加班回家晚了一些,到家后孩子已经吃完饭了,孩他爹整天也不大上心孩子的学习,也不知道辅导孩子...
    秦昊臻阅读 1,474评论 0 0