这篇内容比较多,由于前面dyld的需要拓展,后续也需要分析这个文件,放查漏补缺太多了,所以这里单独分析一波。 1、名词解释 百度官方解释:Mach-O为Mach Object...
这篇内容比较多,由于前面dyld的需要拓展,后续也需要分析这个文件,放查漏补缺太多了,所以这里单独分析一波。 1、名词解释 百度官方解释:Mach-O为Mach Object...
环境说明:objc-818.2源码、MacOS 11.2.1系统,Xcode 12.4,调试可以参考objc-runtime源码编译[https://blog.csdn.ne...
1、main函数分析 之前很多的分析都是从main.m文件入手的,但是从来没分析过为啥APP的启动是通过这个文件来的,所以有疑问就要解决一下,新建一个单界面工程,以下就是ma...
由于这章分析比较重要和前一章联系紧密,因此用的旧的系统,和objc781.1的源码,还有个原因就是当时用自己电脑更新到Big Sur时候,编译源码报错发现找不到Foundat...
好消息,先前电脑升级成Big Sur,导致新系统下源码调试有问题,现在Big Sur又更新版本了,已经可以配置源码调试了,这篇文章后将用新的环境来研究。 2.方法调用的流程 ...
1、slowpath与fastpath 在源码分析过程中,多次遇到过slowpath与fastpath的分支判断情形,最初简单以为是编译器优化选项Build Settings...
1.编译后的方法调用 还是之前的Person类的源码: 要研究方法调用就绕不过编译后的代码,这里用clang编译一下: 并找到main方法中方法调用这段代码: 可以总结,不论...
1、Cache_t结构 在objc_class中除了isa、superclass、bits三个重要的属性外还有一个重要的属性并未进行分析就是cache_t cache,看源码...
先前电脑升级成Big Sur且未开源,导致objc4-781.1源码无法调试,所以更换电脑,基于xcode 11.6, MacOS 10.15.7,这里还是验证了一句话最新的...
1、对象分析 新建如下的类: 然后创建两个对象: 可以对objc1和objc2对象分析: 的父类是 ,可见 对象中存在一个isa指向的是对应的 ,难道对象结构就只有一个 吗,...
1.内存对齐 有过计算机组成原理和操作系统学习经验的同学可以知道,在现实中并不会出现像题目中‘人工智能’般的内存申请、分配,不可能不同类型的数据一个个挨着紧密无间不留一点空隙...
4、_objc_rootAllocWithZone方法进一步分析() 对_objc_rootAllocWithZone方法进行调试,单步跟踪: 因此进入到_class_cre...
3、objc4源码调试() main方法中代码如下: 首先针对objc1进行分析,先通过打开汇编开关打开,,勾选上。 这里居然不是进入 方法,和上一篇对不上号了,换一个试试对...
1、基于断点的底层探索() 定义一个Person类: :点击进入alloc方法的定义,找到 之后无法进一步追溯。 :符号断点alloc方法,汇编代码分析。 注:app启动预先...
这两天翻看 ibireme 大神 《不再安全的 OSSpinLock》 这篇文章,看到文中分析各种锁之前的性能的图表: 发现除了@synchronized 用过,其他的都陌生...