02 2021 档案

摘要:系统先读取App的可执行文件(Mach-O文件),从里面获得dyld的路径,然后加载dyld,dyld去初始化运行环境,开启缓存策略,加载程序相关依赖库(其中也包含我们的可执行文件),并对这些库进行链接,最后调用每个依赖库的初始化方法,在这一步,runtime被初始化。当所有依赖库的初始化后,轮到最 阅读全文
posted @ 2021-02-19 15:26 zzfx 阅读(298) 评论(0) 推荐(0) 编辑
摘要:https://xiaozhuanlan.com/topic/9273604158 先来张渲染的流程图: 这张图其实有很多误导,我的更改如下: 可以看到整个流程是一个pipeline(一次pipeline要跨越三帧)形式的,下面对每个步骤都做一个解释: 1.Handle Events: 处理事件,比 阅读全文
posted @ 2021-02-18 12:55 zzfx 阅读(283) 评论(0) 推荐(0) 编辑
摘要:通信的本质是报文的定义与解释机制 协议:信息的表达与解释 阅读全文
posted @ 2021-02-06 21:49 zzfx 阅读(283) 评论(0) 推荐(0) 编辑
摘要:The breakpoint exception type indicates a trace trap interrupted the process. A trace trap gives an attached debugger the chance to interrupt the proc 阅读全文
posted @ 2021-02-04 14:49 zzfx 阅读(1085) 评论(0) 推荐(0) 编辑
摘要:iOS开发者常见的 UNIX 信号 如下: UNIX 信号注释 SIGSEGV 访问无效的内存地址。地址存在,但是应用程序无法访问。 SIGABRT 程序崩溃。由 C函数 abort() 初始化。通常意味着系统检测到某些事务出错,例如 assert() 或者 NSAssert() 校验失败。 SIG 阅读全文
posted @ 2021-02-04 14:31 zzfx 阅读(85) 评论(0) 推荐(0) 编辑
摘要:该信号表示总线错误,通常与SIGSEGV混合。虽然类似(都代表尝试访问无效内存),但当地址不存在或更常见的无效对齐时,会发生SIGBUS 。换句话说,物理地址无效(这与逻辑地址无效的SIGSEGV不同)。 找不到: In computing, a bus error is a fault raise 阅读全文
posted @ 2021-02-02 21:44 zzfx 阅读(232) 评论(0) 推荐(0) 编辑
摘要:1) SIGBUS(Bus error)意味着指针所对应的地址是有效地址,但总线不能正常使用该指针。通常是未对齐的数据访问所致。2) SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。 非法映射 vs 非法获取、无定义(映射) 总线错误 对一个错误 阅读全文
posted @ 2021-02-02 20:55 zzfx 阅读(1562) 评论(0) 推荐(0) 编辑
摘要:《2》 int 3 INT 3 是中断指令的一种特殊形式,仅有一个字节长。 调试器将该指令当作软件中断指令来用。调试的时候,当程序中的某一位置加断点的时候,调试器会把断点处指令编码的第一个字节替换为INT 3指令的编码。 当程序执行到INT 3,回向调试器申请系统调用,调试器因此获得CPU控制权。之 阅读全文
posted @ 2021-02-02 19:38 zzfx 阅读(323) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示