美文网首页
OC底层原理 01: 源码探索的三种方式

OC底层原理 01: 源码探索的三种方式

作者: 花白少年梦 | 来源:发表于2020-09-06 20:18 被阅读0次

主动已经是我对热爱东西表达的极限了

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

  • 符号断点查看源码
  • control + step into 查看源码
  • 汇编查看源码

以下已alloc为例

1. 下符号断点的形式直接跟流程

为需要查看代码的地方添加断点,为需要查看源码的方法添加符号断点


添加符号断点

然后找到你当前所需要的方法,Symbol的位置添加你需要追踪的方法

添加符号断点追踪的方法
这个时候开始运行你的代码,会出现很多调用alloc的符号断点,而我们只要将代码执行到指定的位置后打开符号断点,就能定位到你需要的查看的代码部分,以alloc为例截图如下:

通过alloc在堆栈中的调用情况可以看出alloc 所在的库libobjc.A.dylib

alloc所对应的库
2. 通过control + step into 查看源码出处

在需要的位置打上断点,然后执行代码,然后control + step into 就可以直接查看,

control + step into

此时只需要添加 objc_alloc 的符号断点,继续执行代码,就能查看源码所在的库

alloc所在的位置 对应方法所在库
3. 汇编查看跟流程

直接在需要查看的地方添加断点,然后执行到该断点的时候后选中 Debug -> Debug Workflow -> Always Show Disassembly 就可以直接进入,然后添加objc_alloc的符号断点即可查看 alloc所对应的库

汇编查看

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

相关文章

网友评论

      本文标题:OC底层原理 01: 源码探索的三种方式

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