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

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

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

  • 符号断点查看源码
  • 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的版本

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

友情链接更多精彩内容