- 博客(3)
- 收藏
- 关注
原创 如何记录键盘SIGQUIT次数
Unix信号在计算机科学中,信号(英语:Signals)是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。信号类似于中断,不同之处在于中断由处理器调解并由内核处理,而信号由内核调解(可能通过系统调用)并由进程处理。内核可以将中断作为信号传递给导致中断的进
2020-06-23 17:19:59 784
原创 iOS Block引用计数及内存管理
Block是在iOS4引入的新特性,是一种特殊的数据类型,今天我们就从源码层面探索一下Block具体是一种什么类型,并探寻下Block的内存管理方式。一、Block类型对于Block是什么类型,其实网上已经给出了答案,那就是Block实例也是一种对象。这个观点是完全正确的,我们可以从以下两个方面进行验证:1. 源码目前关于Block的源码是公开的,具体下载位置为地址。对于Block,本质上是一个结构体,其内容如下:#define BLOCK_DESCRIPTOR_1 1struct Block
2020-06-17 17:39:23 872
原创 利用.sym跨平台解析iOS符号
一、背景在iOS开发中,我们经常会遇到各种各样的线上问题,为了能够定位线上问题发生位置,我们搭建了各种各样收集信息的框架,当线上发生问题时,会收集到发生问题的方法调用栈信息,这些信息可以帮助我们来解决相关问题。无论是我们自己搭建的框架还是直接使用各种第三方收集框架,我们拿到的方法栈调用信息通常都是一些符号,为了能够从这些符号中获取正确的方法名,我们需要在线上包对应的dSYM文件帮助下进行符号化,进而得到明确的方法名。对于如何使用dSYM文件来解析符号,网上已经有了很多质量很好的教程,推荐其中一个教程。
2020-06-05 17:51:11 1548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人