iOS 寻找底层库的三种方法

290 阅读2分钟

在 OC 中,我们知道对象的创建是要通过 alloc 方法,那么我们来探索这个方法,首先要找出它的源码,我们首先想到的是通过 command + 左击,我们发现此部分代码并未开源,那我们改怎么办呢?

这里我们提供一下苹果开源库的地址。

知道哪里可以下载开源库了,那么怎么样知道 alloc 属于哪个开源库呢?

这里提供三个方法供参考。

  1. 方法一:直接取方法名作为符号断点查看(这里是 alloc)
  2. 方法二:按住 control,点击 step into 查看
  3. 方法三:汇编查看

方法一:直接取方法名作为符号断点查看(这里是 alloc)

1、程序运行到 alloc 方法下的断点处,然后添加 alloc 符号断点

2、添加完 alloc 符号断点后,继续跑,可以看到如下信息

通过以上流程得到我们想要的东西了 libobjc.A.dylib,推测 alloc 在这个库。

方法二:按住 control,点击 step into 查看

1、程序运行到 alloc 方法下的断点处,按住 Control 键,点击下图所示按钮

2、此时进入如下页面,我们拿到 objc_alloc 下符号断点

3、添加完 objc_alloc 符号断点后,继续跑,可以看到如下信息

此时就又找到了 libobjc.A.dylib。

方法三:汇编查看

1、程序运行到 alloc 方法下的断点处,点击 Debug -> Debug Workflow -> Always Show Disassembly

2、打开汇编后,继续跑,可以看到如下信息,我们又可以拿到 objc_alloc 下符号断点

3、同方法二的第三步

此时就又再次找到了 libobjc.A.dylib。

总结

通过以上三个方案的探索我们得知,对象的 alloc 在 libobjc.A.dylib 中,于是我们从苹果开发源中去下载源码。