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

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

你可能感兴趣的:(LLDB基础(二)image)