alloc探索的三种方法

2020-09-02  本文已影响0人  lkm_0bdc

按住 control -step into

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


如果在已知跟踪条件\color{#FF0000}{objc_alloc}的情况下,我们可以直接使用符号断点(如果不清楚,可以看下面步骤),就会看到\color{#FF0000}{alloc的源码位置}

符号断点形式直接跟流

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


符号断点流程

\color{#FF0000}{Symbol}输入\color{#FF0000}{alloc},如果不设置,将会违背已有的条件。

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


汇编查看跟流程

在main中的LGPerson处加一个断点,然后在上方\color{#FF0000}{Debug-->Debug Workflow -->Always Show Disassembly}进入汇编跟踪流,这个选项表示始终显示反汇编,直接定位到alloc的源码位于libobjc.A.dylib。

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


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

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

上一篇下一篇

猜你喜欢

热点阅读