【问题标题】:LLDB identify an object with its addressLLDB 用它的地址识别一个对象
【发布时间】:2012-05-11 22:47:15
【问题描述】:

我正在开发从以前的开发人员那里恢复的 iPad 应用程序。有时我会收到以下消息:

Received memory warning.
applicationDidReceiveMemoryWarning:
[ResultsListViewController respondsToSelector:]: message sent to deallocated instance 0x2b1c70

应用停止在

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

我了解到,在应用程序收到内存警告后,应用程序正试图从已释放的类中执行函数。问题是,正如我所说,我没有开发应用程序,所以即使启用了NSZombies,我也找不到问题所在。

有没有办法通过对象内存地址(在我的例子中为 0x2b1c70)使用 LLDB(或任何其他方式)来检索问题发生的位置?

【问题讨论】:

  • Object 已被释放。
  • 我知道,我的问题是如何在崩溃发生时找到该对象的使用位置以纠正此内存管理问题

标签: iphone xcode didreceivememorywarning lldb


【解决方案1】:

使用符号断点,本教程向您展示如何使用它们:http://iosdevelopertips.com/debugging/tracking-down-exception-errors.html

希望这会有所帮助!

山姆

【讨论】:

  • 嗨,山姆,感谢您的反馈。我试过了,但是没有用。可能是我没有正确使用它。我试图将“[ResultsListViewController respondsToSelector:]”作为符号放在符号断点中。不确定这样做是否正确...
  • 我认为你应该使用:EXC_BAD_ACCESS。
  • 如果这不起作用,请阅读:link 也阅读文章中的第一个视图 cmets(有人遇到同样的问题)
  • 忘了说您可以在 Xcode 中使用工具并选择僵尸模板,这就是我解决相同问题的方法。祝你好运!
  • 一个问题,如何选择僵尸模板?我没有在 Instruments 模板中找到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 2015-04-23
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多