本文介绍以下三种探究源码的方式
1.符号断点
2.已有断点下按住control+step into
3.汇编跟进
下面分别用这三种方式找到alloc在哪个系统函数库。
1. 符号断点

添加断点选择 Symbol Breakpoint

输入符号alloc

运行查看
通过符号断点找到alloc在libobjc.A.dylib这个动态库中。
2.通过已有断点按住control+step into
在调用alloc的地方下一个断点。

进入断点按住control点击step into

运行查看
上面我们发现并没有显示函数所在的动态库,于是我们故技重施,再下一个objc_alloc的符号断点。

添加objc_alloc符号断点并运行查看
发现objc_alloc这个函数同样在libobjc.A.dylib这个动态库里面。
3.汇编跟进。
第一步还是在使用到alloc的地方打一个断点,然后点击xcode工具栏选择 Debug --> Debug Workflow --> Always Show Disassembly。这个 选项表示进入断点时始终显示反汇编。

显示反汇编

运行进入断点
进入断点后按住control+step into往下走,当执行到12行汇编时就会跳转到objc_alloc函数。

objc_alloc
同样没法定位函数所在动态库,只有“梅花三弄“再次通过下符号断点找到。