message sent to deallocated instance

iOS开发 - message sent to deallocated instance 崩溃 解决方案


一.说明

(只适用于电脑模拟器)

  • 在做iOS开发过程中,有时候我们会遇到崩溃,并且提示类似这样的提示 :

    png

  • 有时候我们会毫无头绪排查,这时候如果我们想要获取更多详细的信息那么可以用终端里的malloc_history命令来解决。

二.解决步骤

1.使用模拟器运行项目,并且记住项目名比如:zhihuiyun
2.记录崩溃的内存地址比如:0x27659700
3.打开活动监视器,找出你项目的pid,并且记录下来.
4.打开你的 终端 terminal
5.输入命令:sudo malloc_history 8813 0x27659700
(8813:为进程pid 0x27659700:为崩溃内存地址)
6.获取内存对应错误信息,这时候错误信息显示比较乱,我们可以把信息复制到文本编辑软件里面,进行简单格式化一下.

png

7.这个就是方法堆栈调用的顺序,可以根具堆栈信息,结合错误提示,来进一步解决问题  

png

三.问题

The target process has no stack logs. Run it with the MallocStackLogging env

可以设置下:mallocstacklogging 为YES
png
然后重新进行步骤
调试完,记得关闭对号