[iOS底层]-如何去探索iOS的底层源码

2020/9/11 posted in  iOS底层 总阅读量

探寻底层源码的三种方式

工欲善其事必先利其器,我们在准备探寻iOS底层实现的时候,我们必须先要知道如何去找到源码,如何去查看我们想要查看的方法源码出处,下面就介绍三种方式给大家参考。

1. 设置符号断点

我们在探寻alloc的底层逻辑时,必须要先知道alloc的底层实现在哪个库,这样才好去找源码分析。

  1. 切换到Xcode的Breakpoint Navigator,添加一个Symbolic Breakpoint

  2. 添加alloc符号

  3. 运行后,通过断点,可以看到alloc的源码出处为libobjc.A.dylib

2. 汇编跟踪

  1. 开启汇编
  2. 运行至断点处,发现调用了objc_alloc
  3. 添加一个objc_alloc的符号断点,就可以发现objc_alloc位于libobjc.A.dylib

3. control + Step into

  1. 运行至断点处,按住control点击 Step into
  2. 发现跳转到objc_alloc
  3. 打上符号断点objc_alloc,由此发现objc_alloclibobjc.A.dylib中。

4. 通过源码分析

除了上面三种方法,我们还可以直接查看苹果开源的源码进行分析,苹果开源地址:https://opensource.apple.com/tarballs/

还可以去GitHub上下载可直接运行的版本:https://github.com/RetVal/objc-runtime