01 探索源码的三种方式

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

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

下面详细描述三种探索源码的方式:

1. 符号断点直接跟流程

由于是alloc方法的实现无法看到,故下一个'alloc'的符号断点。

添加符号断点

SLPerson创建的行添加一个断点,同时暂时取消刚刚添加的alloc的断点,运行工程~
断点

此时打开alloc的符号断点,点击Continue program execution过掉断点,可以看到程序断点在了libobjc.A.dylib中的[NSObject alloc]方法,由此可知alloc方法的源码在libobjc.A.dylib库中。
libobjc.A.dylib

2. 通过按住control + step into

SLPerson创建的行添加一个断点,运行工程,当进入断点后按住control键,点击step into按钮~

step into

进入断点后看到以下内容
断点

根据显示再下一个objc_alloc的符号断点后点击Continue program execution按钮过掉当前断点,可以看到进入了libobjc.A.dylib中的objc_alloc函数,由此可知alloc方法的源码在libobjc.A.dylib库中。
断点

3. 汇编跟流程

SLPerson创建的行添加一个断点,运行工程,当进入断点后选择XcodeDebug菜单中的Debug Workflow中的Always show disassembly选项

Always show disassembly

可以看到断点变成了如下模样
断点

根据显示再下一个objc_alloc的符号断点后点击Continue program execution按钮过掉当前断点,可以看到进入了libobjc.A.dylib中的objc_alloc函数,由此可知alloc方法的源码在libobjc.A.dylib库中。
断点

Apple开源源码下载地址
1、Apple所有开源源码汇总地址,根据相应的版本查找对应的源码,以mac 10.15为例:macOS --> 10.15 --> 10.15 --> 搜索objc
2、Apple比较直接的源码下载地址,直接搜索库名即可,例如command+f输入objc,选择objc4 --> 选择所需版本

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

相关阅读更多精彩内容

友情链接更多精彩内容