LLDB之使用faceBook的chisel来提升调试效率

现在的社会还是比较注重工作效率的,我们写代码也是一样的,如何提升编码效率对于我们来说是非常重要的。比如给一些经常使用的方法写一个类别等等。除了提升写代码效率之外,我们也有很长一段时间浪费在调试bug上,也许还是有很多人在不断的启动模拟器或者真机这样的方式来调试,这样的效率真的是太慢了。这里给大家介绍一个faceBook的chisel,如果你学会了使用chisel来调试的话,你的工作效率起码会提升30%,对于程序员来说这个时间也是很重要的,我们就可以不用加班,当然也有更多的时间去学习新的东西。

如何安装chisel,具体的参考github
这里就省去安装的步骤了,下面就是具体的如何使用了。

一般我们使用chisel的命令的时候,我们可以通过 help + chisel命令,譬如 help + pvc,得到如何具体使用这个命令,但是有时候你看了help信息也不一定就会用呢。

pvc
获取当前的视图控制器,他的作用就是当你去熟悉别人的代码的时候,不知道某个页面的试图控制器叫啥名字的时候,你可以在当前页面输入pvc,调试框就会打印出试图控制器的名字了,太方便了有木有。

pviews
这个命令是我最常使用的命令。它能够帮助我们看到view的层级,即使我们并没有触发到一个断点。

pviews

border&unborder


2FDA13630E75FB9AA1CD89CBE9B81597_B500_900_500_337.png.jpeg

这个命令可以直接给border 添加边框颜色和边框的宽度,使用如下:

border 0x79ec3140 -c green -w 2

pinternals
这个命令就是打印出来的一个控件(id)类型的内部结构,非常详细,哪怕是自定义的view

9817F08BEB31BF19E4A374E2B26113B4_B500_900_500_682.png.jpeg

presponder
打印出一个集成于UIResponder控件的消息传递链。这个方便我们了解消息是如何传递的,打印的时候是倒着打印的。

08D1D5B28A97BC3CDB6C29A65F71C9FB_B500_900_500_377.png-2.jpeg

visualize
可以使用mac下的预览app打开我们的图片UIImage, CGImageRef格式的图片,甚至view和layer的图片 。

visualize 0x79ec3140//或者变量名,此地址是id类型的

pclass
pclass可以打印出一个对象的继承关系。

7DF9C2A62984C55AD2A1237B5BEA6908_B500_900_500_116.png,"pclass命令".jpeg

taplog
这个命令是模拟敲击一下屏幕,并且打印出你敲击屏幕时候事件接收的对象。

F2F93B95D430C3270D65AC3405BE9327_B500_900_500_101.png.jpeg

hide&show
hide命令可以直接隐藏一个对象,移除当前遮挡的对象便于你观察后面的对象。show命令会让它再次显示出来。

当然lldb还有很多其他的方法,这里就不一一列举了,大家有兴趣可以把help下的命令都尝试一下。保证你能收获不少东西。能够给大家带来帮助。

微博账号:梅嘉庆(点击关注)

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

推荐阅读更多精彩内容

  • 这次真是久违的第二篇了,过年的时候一直在帮家里带孩子,顺便用webStorm这个神器重新温习了下前端的知识。然后最...
    kissGod阅读 18,916评论 15 76
  • 前言 今天花了一天的时间终于把iOS的几种常见的调试方法给学习了一下,在这里给大家分享一下LLDB的使用,同时也是...
    Peak_One阅读 11,106评论 5 33
  • 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThi...
    paraneaeee阅读 1,219评论 0 7
  • 转载 与调试器共舞 - LLDB 的华尔兹: https://objccn.io/issue-19-2/ 推荐:i...
    F麦子阅读 3,359评论 0 10
  • 鸡年记事~~西部老有事,对峙常态化。双方打标语,就是不动枪。这次扔石头,砸了我方人。小哥一动怒,飞腿踢阿三。碗子2...
    瘦人碗子阅读 182评论 1 0