iOS 如何找到野指针

前言

本文参考 腾讯bugly陈其锋 大佬的文章实现的

原理

1.hook住free方法
2.先获取自己保留的内存的大小,如果将要达到自己设置的内存阈值,则释放掉一些内存
如果没有达到阈值,则判断当前要释放的内存大小是否小于所剩内存,如果超出则走free方法
如果没有超出,则判断是否是OC类和是否是已经在运行时环境中已注册的所有类里面
如果不是则走free方法
如果是,则内存上填充0x55,在将自己定义的僵尸类的isa赋值过去,最后记录原来的类
3.因为free方法是要释放内存,所以我们把这块内存指向我们的僵尸对象是没有问题的,但同时要考虑内存的问题,所以在内存紧张的时候,我们要释放掉一些内存。

git代码

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容