主动已经是我对热爱东西表达的极限了
本文主要介绍源码探索的三种方式:
- 符号断点查看源码
- 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的版本












网友评论