iOS 底层原理 01:源码探索的三种方式

本文主要介绍源码探索的三种方式:

1、符号断点跟流程

2、断点+按住Control + step into

3、汇编跟流程 

下面详细讲下三种方法如何进行底层分析,查找底层实现,以alloc函数为例:

1、符号断点跟流程

1.1 添加符号断点

1.2 添加普通断点到想要探索的方法上

1.3 运行代码(Command+R)

1.3.1 代码运行之前要关闭符号断点,目的是防止跳入其他的alloc函数中

注:如何关闭/打开断点?点击断点即可操作关闭/打开

1.3.2 当代码断在LGPerson方法上,再打开alloc符号断点,点击继续执行按钮即可。

1.4 执行结果

从上图可以看出 alloc 的源码位于libobjc.A.dylib库(需要去Apple 相应的开源网址下载 objc源码进行更深入的探索)

2、断点+按住Control + step into

2.1 添加普通断点到要探索的方法上

2.2 运行代码(Command+R)

2.2 按住Control + step into

进去后显示如下图:

2.3 继续下断点

再下一个objc_alloc符号断点,符号断点后显示了 objc_alloc所在的源码库
(需要去Apple 相应的开源网址下载 objc源码进行更深入的探索)

3、汇编跟流程 

3.1 xcode 工具栏 选择 Debug --> Debug Workflow --> Always Show Disassembly,这个 选项表示 始终显示反汇编 ,即 通过汇编 跟流程打开汇编模式

3.2 打一个普通断点到要探索的方法上

3.3 运行代码(Command+R)

执行结果:

3.3 按住control,点击 step into ⬇️键,执行到下图的callq ,对应 objc_alloc

可以通过继续打断点的方式向下探索 。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值