30

我正在尝试解决 iOS 中的“发送到已释放实例的消息”错误。

4

3 回答 3

42

请参阅 LLDB-GDB 命令映射 ( http://lldb.llvm.org/lldb-gdb.html ) - 您必须导入一个脚本,该命令现在名为 malloc_info。显然,malloc 堆栈日志仍然需要在方案选项中开启。

(lldb) script import lldb.macosx.heap
(lldb) malloc_info --stack-history 0x10010d680

不幸的是,它没有显示 dealloc - GDB 的 malloc-history 是否也显示了这一点?

于 2013-04-24T08:45:16.650 回答
2

使用仪器,你会得到准确的线 -

(在 XCode 中)通过“产品”->“配置文件”运行它。

这将启动 Instruments,在那里您应该选择“Zombies”并重现错误事件。

调用僵尸后,您会弹出一个窗口,按 V 形查看确切的行

问题通常是坏的__bridge(可选的桥梁__brige_retained// __bridge_transfer__bridge

于 2012-09-10T11:02:11.643 回答
0

您曾经能够在 shell 中使用 malloc_history 命令行工具,并为其提供进程 ID 和感兴趣的地址。最新的 Xcode 命令行工具似乎不再安装此命令。:-(

于 2012-03-26T00:49:14.817 回答