01 探索源码的三种方式

2021-01-19  本文已影响0人  lcd357287797

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

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

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 --> 选择所需版本

上一篇 下一篇

猜你喜欢

热点阅读