美文网首页
iOS底层原理01--源码探索的方式

iOS底层原理01--源码探索的方式

作者: 阿木小丸子 | 来源:发表于2020-11-28 16:19 被阅读0次

本文主要介绍下源码探索的三种方式:

* 符号断点直接跟流程
* 通过按住 control + step into
* 汇编跟流程

接下来详细讲下这三种方法是如何查找到函数所在的源码库,以alloc为例:

一、符号断点直接跟流程

1、添加断点 Symbolic Breakpoint



2、在LGPerson的初始化处打一个断点

在代码走到这个断点之前,需要先将上面的符号断点关闭,因为alloc的调用有很多,如果开启了就不能准确的定位到LGPerson的alloc方法。


下面是符号断点关闭时的状态:
3、运行程序,断在LGPerson部分,打开all的断点:
4、继续执行:
就能看到alloc符号断点断往的堆栈情况,从下面的图中可以看出,alloc的源码位于libobjc.A.dylib库(需要去Apple 相应的开源网址下载 objc源码进行更深入的探索)
二、通过按住 control + step into

1、在LGPerson的初始化处打一个断点,并运行程序,程序会断在LGPerson位置


2、按住 control 键,选择step into键
进去后,显示如下内容:
3、再下一个 objc_alloc 的符号断点;
按住 control 键,选择step into键,就能看到objc_alloc符号断点断往的堆栈情况,从下面的图中可以看出,alloc的源码位于libobjc.A.dylib库(需要去Apple 相应的开源网址下载 objc源码进行更深入的探索)
三、汇编跟流程

1、在LGPerson的初始化处打一个断点,并运行程序,程序会断在LGPerson位置


2、XCode工具栏选择,如下图
3、按住 control 键,选择step into键,执行到下图
4、按住 control 键,选择step into键,执行到下图
5、再下一个 objc_alloc 的符号断点;
按住 control 键,选择step into键,就能看到objc_alloc符号断点断往的堆栈情况,从下面的图中可以看出,alloc的源码位于libobjc.A.dylib库(需要去Apple 相应的开源网址下载 objc源码进行更深入的探索)

以下是Apple 提供的源码下载地址
1、Apple 所有开源源码汇总地址,根据相应的版本查找对应的源码,以mac 10.15为例: macOS --> 10.15 --> 选择10.15 --> 搜索 objc
2、Apple 比较直接的源码下载地址,直接搜索想要下载的源码名称即可,例如objc直接搜索 objc --> objc4/ --> 选择相应的objc的版本

相关文章

网友评论

      本文标题:iOS底层原理01--源码探索的方式

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