美文网首页
iOS--Chisel记录

iOS--Chisel记录

作者: 奇董 | 来源:发表于2018-03-14 18:03 被阅读59次

    最近看看针对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
    查看所有命令

    相关文章

      网友评论

          本文标题:iOS--Chisel记录

          本文链接:https://www.haomeiwen.com/subject/nqafqftx.html