对与iOS的底层原理探索一般有三个手段可以实现真机调试
-
符号断点
直接跟流程分析 - 通过
按住control+step into
-
汇编
流程分析
下面详细介绍如何使用三种方法查找方法函数
所在的源码位置,已alloc
为例
1、符号断点
直接跟流程分析
• 通过代码下断点alloc
• 选择断点Symbolic Breakpoint
![](https://img.haomeiwen.com/i2251862/546b1518f2904802.png)
• 符号断点中输入
alloc
![](https://img.haomeiwen.com/i2251862/37cbd6ed87950e46.png)
• alloc
中的Person
处 加一个断点
在走到这部分断点之前,需要关闭上面新增的alloc
符号断点,原因是因为alloc的调用有很多,如果开启了就不能准确的定位到Person的alloc方法
![](https://img.haomeiwen.com/i1029911/2c8dea745853c999.png)
• 运行程序到main的person断点中打开断点,继续运行可与发现
![](https://img.haomeiwen.com/i1029911/d6abcbbb9cb1314b.png)
![](https://img.haomeiwen.com/i2251862/5ff2596cbbf2972b.png)
2、 通过按住control+step into
• 当程序运行到在mian函数的person中的断点时
![](https://img.haomeiwen.com/i1029911/6efced5f350b111e.gif)
可以发现
![](https://img.haomeiwen.com/i1029911/3cd1794264b3f92f.png)
同样的你也可以下一个
allco
的断点处看见![](https://img.haomeiwen.com/i1029911/327d97664537b1df.png)
3、 可以通过xcode->Debug WorkFlow->Always Show Disassembly 选中配合断点可以进入汇编
![](https://img.haomeiwen.com/i2251862/b59ee92b6955aa75.png)
注意(以下是Apple 提供的源码下载地址):
1、Apple 所有开源源码汇总地址,根据相应的版本查找对应的源码,以mac 10.15为例: macOS --> 10.15 --> 选择10.15 --> 搜索 objc
2、Apple 比较直接的源码下载地址,直接搜索想要下载的源码名称即可,例如objc
:直接搜索 objc --> objc4/ --> 选择相应的objc的版本
网友评论