跟踪alloc方法的具体流程:
-
在测试项目中合适的地方写一个alloc方法,并所在行下一个断点
-
利用LLDB的三种调试方法之一,定位到alloc方法在底层所用到的动态库的名字:
-
先运行,然后下名字为alloc的符号断点,然后点击继续运行(Continue program execution)
-
先运行,然后按住control并点击图示的箭头三次,然后将函数名objc_alloc_init加入到符号断点 (Step into instruction: 该指令代表单步执行CPU的指令,并跳入汇编的函数调用栈;如果用Step over instruction,虽然同样也是单步执行CPU的制定,但它不会跳入当前函数内部)
-
先通过路径打开Debug -> Debug Workflow -> Always show Disassembly,然后运行
-
有了动态库的名字后,在苹果的开源库网站找到对应的开源库源码:
-
打开源码网站:[https://opensource.apple.com/source/](https://opensource.apple.com/source/)
-
搜索关键词objc,找到可以编译出libobjc.A.dylib的动态库的最新源码(objc4-781),当前最新的稳定版本为781
-
配置objc4-781的环境并运行(可参考其他博客的配置流程)
-
在objc的源码环境下,我们就可以通过断点跟踪alloc的底层调用了