美文网首页
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