什么可能导致“来自调试器的消息:由于内存问题而终止”

时间:2018-03-26 18:56:52

标签: ios memory

我的应用有时会崩溃,控制台会说

Message from debugger: Terminated due to memory issue

有没有其他人经历过这种情况并知道可能导致这种情况的一些原因?这是我到目前为止所尝试的内容。

  1. 我启用了Zombie Objects,但没有找到任何内容。
  2. 这只发生在我的iPhone上,因此我无法运行仅在模拟器上运行的其他内存管理工具(即Guard Malloc)。
  3. 这只发生在内存不足警告之后。在发出一些内存警告后,每次内存警告后都不会发生这种情况。当我的应用收到内存警告时,它清除了一些缓存,所以我的猜测是它与此有关。
  4. 在模拟器中,我模拟了内存警告,这种情况从未发生过。
  5. 我认为它可能与弱对象有关,所以我在objc_weak_error上添加了一个符号断点。我确实让调试器停止了一次这个断点,我修复了弱错误,但它没有解决“由于内存问题而终止”。
  6. 虽然我可能没有释放足够的内存,所以我看了我的应用程序在Xcode中使用的总内存,它从未超过可用内存的50%。
  7. 我的应用程序是Objective-C和Swift代码的混合体。看来这是来自我的应用程序的用Objective-C编写的区域,但我不是100%肯定。
  8. 我很想知道是否有其他人遇到过这个问题,如果有的话,你做了什么来修复它。我已经查看了其他Stack Overlow问题,到目前为止,他们都没有给我任何额外的洞察力来解决这个问题。

1 个答案:

答案 0 :(得分:1)

所以我的一个初步观察是错误的。我认为我的应用程序从未超过可用内存的50%(上面的第6点)。我错了。它确实消耗了更多的内存而且这个错误正在发生,因为我在内存警告期间没有释放足够的内存。