0

我的应用程序崩溃了,我无法追踪。在我得到的日志中:

[CFString release]:消息发送到释放的实例 0xeb8a560

即使在调试时,我也无法追踪崩溃。我放置了断点并启用了 NSZombie,但仍然没有帮助。有没有人有一些想法来获取崩溃的位置?

4

3 回答 3

2

要获取崩溃的确切位置,您需要添加 'Exception BreakPoint' ,这会将断点添加到崩溃发生的确切位置。

在 xcode 4 的左侧栏中:

  1. 点击断点选项卡(第 6 个选项卡结束)
  2. 点击窗口左下角的 + 按钮
  3. 点击“添加异常断点”
  4. 在弹出窗口中点击“完成”

在 Xcode 4 中引用“运行 > 在 Objective-C 异常上停止”?

于 2012-05-16T07:44:39.500 回答
1

一个字符串对象过度释放。您可以创建一个异常断点来查找它崩溃的位置。您也可以尝试bt在 GDB 中使用来获取崩溃日志。

这个链接有很多技巧和窍门。

于 2012-05-16T05:29:05.297 回答
0

这种类型的错误(使用类保留/释放内存管理)也可以使用 Zombies Instrument 进行调试。通常(并非总是)您可以看到已释放对象被保留/释放的历史记录,并找出为什么会从您的身下消失。

于 2012-05-16T13:44:09.027 回答