异常数据的捕获

 iOS崩溃捕获原理

定义自己的信号处理函数,代替内核的默认处理,需要监听从当mach微内核发生mach异常(EXC_BAD_ACCESS,EXC_CRASH等,在这一瞬间先暂停所有子线程(除捕获线程外),捕获到各个线程的backtrace,backtrace只能以16进制地址信息存储、产生异常的线程、捕获发生的时间、可以获取其他硬件信息、获取当前进程加载的二进制镜像文件包括镜像开始地址,结束地址,镜像名字)、app info,崩溃的uuid,Last Exception Backtrace等;与之对应mach异常转换为unix信号量(SIGSEGV,SIGBUS、SIGILL、SIGTRAP等),退出进程。需要用到相关API介绍绍:http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/

 如何拿到线程调用栈:

1、Objective-c层API:[NSThread callStackSymbols]

2、C语言层API:backtrace();

3、通过寄存器数据获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值