当前位置:  开发笔记 > IOS > 正文

iPhone - 调试"释放指针未分配"错误

如何解决《iPhone-调试"释放指针未分配"错误》经验,为你挑选了1个好方法。

当释放指针时,您可能会看到错误,例如

"没有分配被释放的指针"

在使用模拟器进行调试时,我添加了一个构建参数MallocStackLogging = YES - 这允许我在终端中使用malloc_history来跟踪我释放指针的位置.

如果我使用此构建参数在设备上进行调试,我会收到各种控制台错误"无法创建堆栈日志文件"等.

奇怪的是,我在设备上出现了一些过度释放的指针错误,但在模拟器上却没有.

有没有人有使用设备本身追踪这些的经验?

谢谢!



1> Ish..:

另一种方法.确保打开NSZombie,以便报告获得额外版本的对象的内存地址.然后使用Performance Tool-> Object Allocations运行.这将带来乐器.查看Xcode管理器提供的控制台日志.一旦你得到崩溃查找仪器中的内存地址.您将在该对象上看到mallocs/frees的完整历史记录,以及直接链接到代码中的链接.


我无法通过这些确切的指示得到它(在Xcode 4.2.1中) - 我必须运行Xcode,然后在运行时附加Instruments.我为当前的Scheme启用了"Enable Zombie Objects",一旦我触发了异常,Instruments就像一个冠军一样锁定了,并带我进入僵尸地址的历史.我查看了初始分配的堆栈跟踪,并看到了导致异常的不必要的`[autorelease]`.真棒工具!
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有