开发一个项目中, 出现了[Obj retain] message sent to deallocated instance 0x… 的错误, 字面翻译是向一个已经释放的对象发送了消息, 现在需要定位在哪里多次释放了一个Obj, 但是xcode并没有给标记出来.
这时, 打开活动监视器 找到当前crash的项目的活动进程PID, (不要结束项目) 此时, 我们拿到了 项目的 PID 和 发送错误的地址信息PID: 2054
Crash 地址: 0x7fdf6d066e00打开“终端”,输入以下命令:
sudo malloc_history 2054 0x7fdf6d066e00
结果出现error如下:
解决方法:
然后, 重新输入上述命令, 输入密码后, 即可打印出相关的 log 日志.
最后的那个[WKWebView xxx_initWithFrame]方法就是我们自定义的方法, 这里重复释放了WKWebView. 找到出错的原因, 可以定位问题.