应用程序只与(lldb)崩溃?

我有一个与Cocos2D和一些UIKit混合在一个应用程序。我最近一直在实施一些新的function,所以也许内存pipe理是错误的或过度发布的东西,但每当我退出应用程序通过单击主页button,控制台崩溃只有消息(lldb)。 即使我打开NSZombiesEnabled没有什么不同。

我的应用程序指向的唯一一条线是这样的:

libGPUSupportMercury.dylib`gpus_ReturnNotPermittedKillClient: 0x38101094: trap 0x38101096: nop 

我不知道这是什么意思,但我很想得到这个修复。 有谁知道为什么会发生这种情况?

提前致谢!

编辑 :我认为这是因为我调用Cocos2D的CCDirector后,我做unscheduleAllSelectors和stopAnimation的原因。 如果我不叫这两个,那么就不会有任何的崩溃。

你的应用程序正在被杀,因为它违反了一个例外。 几乎可以肯定的是,在您的应用程序转移到后台后,您正在使用GPU,这是严格违法的,并会导致系统向您的应用程序发送终止信号。

当一个应用程序在debugging器中运行时,它被一个外部信号(比如kill信号)而不是debugging器可以处理的东西(比如一个mach例外)所杀,debugging器只是给你提供它所知道的任何信息,程序入口点(这通常会导致debugging器看起来像停在main()的最后一行。

但是,需要注意的重要一点是, 应用程序进入后台之前 ,必须先结束所有GPU活动。 在UIApplicationWillResignActiveNotification的通知处理程序中或在类似名称的应用程序委托callback中,一个好的做法是做到这一点。

这可能意味着你仍然在尝试渲染OpenGL中的东西(通过Cocos2D),这是不允许的,当应用程序在后台。

原来,这是我与Cocos2D有关的问题的实际解决办法: http : //www.cocos2d-iphone.org/forum/topic/7326