OC底层原理01:源码的三种探究方式

本文介绍以下三种探究源码的方式

1.符号断点
2.已有断点下按住control+step into
3.汇编跟进

下面分别用这三种方式找到alloc在哪个系统函数库。

1. 符号断点
添加断点选择 Symbol Breakpoint
输入符号alloc
运行查看

通过符号断点找到alloclibobjc.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

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

你可能感兴趣的:(OC底层原理01:源码的三种探究方式)