动态调试之chisel插件和LLDB插件

一、Homebrew :包管理工具

brew --version //简写brew -v
brew list 查看包管理工具中安装的工具

二、chisel

chisel: lldb的插件

  • brew install chisel:安装chisel

open .: 打开当前文件夹

  • 安装在了/usr/local/Cellar/chisel/目录下

  • /usr/local/Cellar/chisel/1.8.1/libexec/fblldb.py配置到~目录下.lldbinit文件中

  • command script import /usr/local/Cellar/chisel/1.8.1/libexec/fblldb.py

三、chisel使用

  • po [self.view recursiveDescription] 循环打印,view上的所有子控件,这个是lldb的命令
  • pviews self.view 循环打印,view上的所有子控件
  • pviews 循环打印
  • command source ~/.lldbinit Xcode项目已经在运行中,修改了.lldbinit文件,需要重新加载一下.lldbinit文件
  • pvc 打印所有控制器
  • pactions 0x10de0bad0
  • presponder 0x10de0bad0 响应者链条
  • pclass 0x10dd0df80 查看类的继承关系
  • pmethods 0x10dd0df80 查看类的方法,不带方法的内存地址(和methods的区别)
  • pinternals 0x10dd0df80 查看类的属性
  • po 0x10dd0df80 知道内存地址,查看它是啥,这个是lldb的命令
  • fvc -v 0x10dd0df80 知道内存地址,查看它是那个ViewController
  • fv UIButton 知道View的名字查看内存
  • taplog 执行之后,lldb会断了,然后点击任何可点击的按钮程序又会断下来
  • flicker 0x10de0bad0 隐藏并显示闪烁一下,标记出来
  • vs 0x10de0bad0 进入调试状态。w:进入父控件,s:进入第一个子控件,a:平级上一个控件,d:平级下一个控件,p:打印当前的层级关系。q:退出调试状态

  • chisel更多使用方法

四、LLDB

LLDB: lldb的插件

  • 拷贝到了opt文件下
  • /opt/LLDB/lldb_commands/dslldb.py配置到~目录下.lldbinit文件中
  • command script import /opt/LLDB/lldb_commands/dslldb.py

五、LLDB使用

  • search UIView 查看工程中所有的UIView
  • bt 这个是lldb的命令
  • sbt 和bt命令相似,但是会恢复一部分符号
  • methods UIViewController 查看一个类的所有方法,带方法的内存地址。除了显示当前类里面的方法,还显示父类的方法
  • methods 0x14bd07880 查看一个类的所有方法,带方法的内存地址。主要显示当前类里面的方法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThi...
    木易林1阅读 985评论 0 4
  • 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThi...
    我是啊梁阅读 832评论 1 1
  • LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode ...
    Eric_zheng阅读 431评论 0 0
  • 与调试器共舞 - LLDB 的华尔兹 nangege 2014/12/19 你是否曾经苦恼于理解你的代码,而去尝试...
    McDan阅读 893评论 0 0
  • 相信大家肯定都有过为了调试而添加打印变量,或者使用直接常量代替函数调用结果,或者更改判断条件以进入某特定分支的调试...
    纵横而乐阅读 2,005评论 0 3