首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
ios
订阅
用户3058874869785
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
arm64 架构之入栈/出栈操作
31 个R0 ~ R30,每个寄存器可以存取一个 64 位大小的数。 当使用 x0 - x30访问时,是一个 64位的数;当使用 w0 - w30访问时,是一个 32 位的数,访问的是寄存器的 低 32 位,如图: (也可以说是 浮点型寄存器)每个寄存器的大小是 128 位的。…
iOS项目技术还债之路《一》后台下载趟坑
去年底我在公司开始接手几个迭代了五六年的iOS老项目的技术优化工作。互联网公司的闭源N手业务老代码,经过了若干年和若干波人的轮番洗礼,再加上若干个deadline的赶工加持,已经是千疮百孔,改点东西如履薄冰。往好处想想,前人埋的坑越多,后人才有发挥空间不是。于是我愉快的开始了趟…
获取任意线程调用栈的那些事
BSBacktraceLogger 是一个轻量级的框架,可以获取任意线程的调用栈,开源在我的 GitHub,建议下载下来结合本文阅读。 我们知道 NSThread 有一个类方法 callstackSymbols 可以获取调用栈,但是它输出的是当前线程的调用栈。在利用 Runlo…
iOS底层学习 - 从编译到启动的奇幻旅程(二)
首先安利一本书《程序员的自我修养--链接、装载与库》,看完神清气爽。 可执行文件(程序)是一个静态的概念,在运行之前它只是硬盘上的一个文件;而进程是一个动态的概念,它是程序运行时的一个过程,我们知道每个程序被运行起来后,它会拥有自己独立的虚拟地址空间,这个地址空间大小的上限是由…
ios 堆、栈,全局区 入门理解
栈:编译器自动分配和释放,存放函数参数值,局部变量,(swift结构体,栈block)等。 堆:程序员画管理释放。分配方式倒是类似于链表。就是通过new、malloc、realloc分配的内存块,编译器不会负责它们的释放工作,需要用程序区释放。分配方式类似于数据结构中的链表。在…
fishhook使用场景&源码分析
上一篇我们一起分析了 fishhook的实现原理,但很多东西如果我们仅仅知道原理,其实距离真正吸收它并将其转化成自己的生产力还有很长的路。你得弄清楚别人是怎么利用这个原理去解决问题的,还要借鉴别人的设计思想,再结合我们自己的思考不断地实践和总结,才能真正让知识成为自己的生产力。…
fishhook的实现原理浅析
早些时候,iOS中一提到“黑魔法”、HOOK,很多人第一时间想到的就是 AOP RunTime MethodSwizzling 这些不明觉厉的东西,它们的基本用法其实都不难,真正难的是如何在合适的地方用好它们。 任何事物都有两面性,越强大其可能带来的隐患也越具有毁灭性。苹果提供…
iOS 界的毒瘤:Method Swizzle
iOS 界的毒瘤:Method Swizzle
LLVM编译器中的内置(built-in)函数
这些__builtin_开头的符号其实是一些编译器内置的函数或者编译优化处理开关等,其作用类似于宏。宏是高级语言用于预编译时进行替换的源代码块,而内置函数则是用于在编译阶段进行替换的机器指令块。因此编译器的这些内置函数其实并不是真实的函数,而只是一段指令块,起到编译时的内联功能…
ARM汇编指令集汇总
今天Saint给大家分享一下对汇编指令代码的汇总。 【MOV指令】:它的传送指令只能是把一个寄存器的值(要能用立即数表示)赋给另一个寄存器,或者将一个常量赋给寄存器,将后边的量赋给前边的量。 MOV指令中,条件缺省时指令无条件执行;S选项决定指令的操作是否影响CPSR中条件标志…