alloc探索的三种方法

  • 按住 control -step into
  • 符号断点形式直接跟流程
  • 汇编查看跟流程
    下面详细讲解三种方法是如何查询所在的,这里是以alloc为例子。

按住 control -step into

因为模拟机是无法进行,我们需要真机运行。
首先我们需要打一个断点,然后按住,下方的箭头发生改变,点击箭头一直进入,就会看到alloc的源码位于libobjc.A.dylib(这里可以查看官方文档了解)。


如果在已知跟踪条件的情况下,我们可以直接使用符号断点(如果不清楚,可以看下面步骤),就会看到。

符号断点形式直接跟流

在main中的LGPerson处加一个断点,走之前需要关闭上面新加的符号断点,因为alloc调用的地方比较多,不关闭的话,不能准确的定位到LGPerson 的alloc方法。


符号断点流程

输入,如果不设置,将会违背已有的条件。

然后我们会看到很多的内容,这时候只需要过一个断点,就可以来到alloc的动态库。
从图中可以看出alloc的源码位于libobjc.A.dylib。


汇编查看跟流程

在main中的LGPerson处加一个断点,然后在上方进入汇编跟踪流,这个选项表示始终显示反汇编,直接定位到alloc的源码位于libobjc.A.dylib。

过断点到objec_alloc的位置按住control + step into


就可以在已知的情况下,通过符号断点知道源码所在库(需要去Apple开源objc源码下载进行了解)。

下面是Apple提供的源码下载地址
苹果开源源码汇总
这个地址直接通过搜索

你可能感兴趣的:(alloc探索的三种方法)