OC底层探索(二) :源码探索的三种方式
源码探索的三种方法
- 符号断点直接跟流程
- 通过按住control+step into
- 汇编跟流程
1. 符号断点
以alloc为例:
- 选择断点Symbolic Breakpoint
-
符号断点中输入 alloc
-
在alloc断点处跟进
在执行alloc时,打开alloc符号断点,
然后进入下面页面,我们就会发现alloc 的源码libobjc.A.dylib库
2. 通过按住control+step into
- 在alloc处打一个断点,
- 当断点执行到alloc时,按住control然后点击step into
- 然后进入断点中,我们
(注:由于我使用的是低版本的xcode,没有找到objc_alloc,所以借用一下别人的图片)
- 再设置一个符号断点,我们就会发现当前函数是在哪个类库中
3. 汇编跟流程
- 在alloc处打一个断点,
- xcode 工具栏 选择 Debug --> Debug Workflow --> Always Show Disassembly,这个 选项表示 始终显示反汇编 ,即 通过汇编 跟流程
- 按住control,点击 step into ⬇️键,执行到下图的callq ,对应 objc_alloc,并跟进,
- 然后进入断点中,我们
- 再设置一个符号断点,我们就会发现当前函数是在哪个类库中