暂无搜索历史
本文会通过对 NSThread 的原理进行分析,对 iOS 15 开始出现的 [_NSThreadPerformInfo dealloc] 相关崩溃进行定位,并...
前言 今天有位群友抛出了一个很有意思的问题:为什么系统类的 class 地址比栈区变量更高? image-20210519235852843 iOS 进程内存...
由于工作中接触到 Swift 汇编与逆向知识,所以整理了这篇博客。内容与顺序无关,第一篇文章并非入门,单纯只是第一篇文章。建议有一定汇编基础的读者学习。
本文会提供一种打开任意 APP 权限设置页面(比如微信的设置页面)的方案,同时,该方案能够提高打开任意设置界面的速度。
通过下面的指令,我们可以发现 NSMutableDictionary 类并不存在类方法 +[NSMutableDictionary dictionary]
注意,本文所有崩溃的原因都是同一个 EXC_BAD_ACCESS (code=1, address=0x11f645b98) image-20210423232...
最近和群友讨论指令集时,遇到一个有意思的问题,x86_64 的 CALL 指令长度会发生变化吗?
NSArray 获取指定 元素 的位置 或者 判断是否存在指定的 元素 的时间复杂度是 O(n)(包含特定元素时,平均耗时是 O(n/2),如果不包含特定元素,...
本文会通过实际的例子对 clangLex 的 词法分析 和 预处理指令 相关流程进行分享
尽管我们通常只会用到 NSDictionary 和 NSMutableDictionary 两个类,但是系统库会存在很多不同的子类。
clang 编译器前端负责从源码生成中间码,它通常由 clang 模块驱动,并通常包含以下几个步骤:
今天交流群有网友遇到 linkmap 文件无法准确分析 static 字符串对二进制的体积的问题。
字节团队最近分享的 iOS 稳定性问题治理:卡死崩溃监控原理及最佳实践 提到:NSUserDefaults 底层实现中存在直接或者间接的跨进程通信,在主线程同步...
为了控制 clang 的运行,clang 必须支持不同的参数对各种行为进行控制,所以,clang driver 启动后的第一个主要任务就是 参数解析
本篇文章会对 clang driver 的 构建 Actions 流程进行详细的讲解
本系列文章会通过对 clang 源码进行拆解的方式,逐步对 clang 内部的各种逻辑进行介绍。
Pipeline: Compilation Action Construction:根据每个输入的文件和类型,组建 action(比如 PreprocessJo...
偶然发现支付宝的 SDK 存在一个很有意思的函数 APMutableStringRemoveLastComma。该函数会判断可变字符串尾部是否等于 ,;如果相等...
本节会演示关闭 Enable Modules 配置开关后,下面几行简单的代码经过 预处理操作 后会变成什么
随着项目的扩大,为了提高开发效率、编译速度,组件化(二进制化)是一种不可避免的趋势。大部分的公司都分享过相关文章,本文不再赘述。下面集中在二进制化带来的问题,以...
腾讯 | iOS 研发 (已认证)
暂未填写学校和专业