2012-08-09 49 views
0

我一直在试图解决这个崩溃,只是不知道从哪里开始。有人可以帮我弄清楚如何使用Xcode的工具来正确导航这些信息来找到罪魁祸首?我甚至不知道这些细节是:如何追踪CFRetain崩溃?

enter image description here

回答

1

仪器工具应该是您的第一个呼叫端口 - 特别是泄漏和分配分析仪。

要使用它,请在Xcode的产品菜单中选择Profile选项。

您可能想要使用NSZombie对象进行调查,该对象旨在捕捉对象的过度释放。

这当然可能是你只是将一个指针传递给不是Core Foundation/Cocoa对象的地方。

1

的Xcode的调试良好的第一步通常是设置一个异常断点。为此,请选择左边栏中的例外选项卡,然后单击底部的加号并选择例外断点。这可以提供帮助,因为它会在抛出异常时暂停执行,从而更容易追踪。

也就是说,基于你发布的屏幕截图,它看起来像一个对象被释放两次,所以这可能没有多大帮助。在整个代码中使用日志语句或附加断点可能会帮助您追踪问题发生的位置。

屏幕截图中显示的详细信息是编译后的汇编代码,用被调用的内容注释。 CFRetain被可可内部使用来释放对象(即在执行-release时)。