com.apple.root.default-overcommit-priority -[CFString release]:消息发送到释放的实例
Posted
技术标签:
【中文标题】com.apple.root.default-overcommit-priority -[CFString release]:消息发送到释放的实例【英文标题】:com.apple.root.default-overcommit-priority -[CFString release]: message sent to deallocated instance 【发布时间】:2013-10-21 12:02:41 【问题描述】:在我的应用程序中,线程 13 标记为:
com.apple.root.default-overcommit-priority
在下面我看到一个:
0 __forwarding__
下面我有一个:
6 _pthread_wqthread
原因:
-[CFString release]: message sent to deallocated instance
我知道一条消息正在发送到一个已释放的实例,我的问题是我找不到发生这种情况的位置。 我启用了僵尸、异常记录等。
我还创建了一个导入的框架(带有完整的调试符号),我感觉这就是错误的根源。
由于框架不能直接执行,并且必须导入,我如何调试/单步执行等,以便尝试找到触发此问题的确切行?
此外,除了程序集/堆栈/寄存器信息之外,我如何获得有关崩溃的更多信息?
【问题讨论】:
我不知道它是否仍然与您相关,但无论如何:您可以尝试将框架中的文件直接添加到您的主项目并尝试调试,您应该能够添加断点然后做其他事情。尽管对我来说这看起来像是一些多线程问题。在这种情况下,崩溃线并不那么明显。 使用符号断点可能会有所帮助:[CFString release] 或其中一些命令:lldb.llvm.org/lldb-gdb.html 【参考方案1】:这些 lldb 扩展对调试非常有帮助。在您的情况下,bmessage 命令将允许您在 [CFString release] 上设置断点,以便您可以跟踪并追踪在同一对象上两次调用 release 的位置。
https://github.com/facebook/chisel
【讨论】:
以上是关于com.apple.root.default-overcommit-priority -[CFString release]:消息发送到释放的实例的主要内容,如果未能解决你的问题,请参考以下文章