美文网首页
iOS 如何找到野指针

iOS 如何找到野指针

作者: 小沛2016 | 来源:发表于2023-07-07 14:54 被阅读0次

前言

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

原理

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

git代码

相关文章

网友评论

      本文标题:iOS 如何找到野指针

      本文链接:https://www.haomeiwen.com/subject/nutdudtx.html