LLDB基础(二)image

        image在lldb上是命令target modules的简写,它的作用是查询制定模块或者库的信息,这里的模块(module)包括可执行文件(executable)、动静态库(framework)和插件(plugin),在iOS中大部分是动态库例如UIKit。这些信息包括公有属性方法、私有属性方法。对于公有属性我们能够直接得到所以并没有太多作用,但是能够获得私有的属性跟方法,这对我们探索研究学习一些非开源的库有非常大的帮助。接下来介绍image的用法。

image list

       这条指令会列出当前的可执行文件(程序)所以已经加载好的模块,列出的信息里有模块的UUID、内存地址和文件路径。在这个命令后加上所有查询的模块名就可以单独获取该模块的信息。例如输入image list UIKit就能获取到UIKit的相关信息。

image lookup

        这条指令能够根据用户的输入从已加载好的模块里的信息筛选出符合条件的信息(指定方法或函数的信息)。举个例子,输入指令image lookup -n [UIViewController init], 就能获得关于这个方法的信息。这里的-n所代表的是筛选条件为与用户输入相同。另外还有另外一个筛选方式,-rn,它可以让用户使用正则表达式来进行查询。这是一个非常实用的功能,尝试随便在一个项目的lldb里输入 image lookup -rn '\[UIViewController\(\w+\)\ ', 你将得到一大堆关于UIViewController的方法,仔细看下,你会发现里面有很多方法都是没见到过的,这些方法其实就是UIViewController的私有方法。

image dump symfile

       这条指令能够获得指定模块的全部符号表信息。

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

推荐阅读更多精彩内容

  • 现在, 你已经有了坚实的调试基础.你可以找到并附加到你感兴趣的程序上, 高效的创建正则表达式断点来覆盖一个宽泛的范...
    股金杂谈阅读 5,176评论 0 1
  • LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用Xc...
    CoderSC阅读 5,221评论 0 2
  • 本文是Advanced Apple Debugging的学习笔记.首先将Xcode升级到8.3版本.可以通过下载地...
    股金杂谈阅读 8,325评论 13 4
  • ps:本文为以前学些是学习所记笔记,原文链接已经丢失,在此发表为以后查阅方便,如有侵权请作者联系我,会马上删除。 ...
    哎中文不艾汉语阅读 5,429评论 0 1
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,309评论 30 472