本文介绍以下三种探究源码的方式
1.符号断点
2.已有断点下按住control
+step into
3.汇编跟进
下面分别用这三种方式找到alloc
在哪个系统函数库。
1. 符号断点
添加断点选择 Symbol Breakpoint
输入符号alloc
运行查看
通过符号断点找到alloc
在libobjc.A.dylib
这个动态库中。
2.通过已有断点按住control
+step into
在调用alloc
的地方下一个断点。
进入断点按住control点击step into
运行查看
上面我们发现并没有显示函数所在的动态库,于是我们故技重施,再下一个objc_alloc
的符号断点。
添加objc_alloc符号断点并运行查看
发现objc_alloc
这个函数同样在libobjc.A.dylib
这个动态库里面。
3.汇编跟进。
第一步还是在使用到alloc
的地方打一个断点,然后点击xcode
工具栏选择 Debug
--> Debug Workflow
--> Always Show Disassembly
。这个 选项表示进入断点时始终显示反汇编。
显示反汇编
运行进入断点
进入断点后按住control
+step into
往下走,当执行到12行汇编时就会跳转到objc_alloc
函数。
objc_alloc
同样没法定位函数所在动态库,只有“梅花三弄“再次通过下符号断点找到。