2012-02-08 182 views
1

我的应用程序崩溃,但不会在控制台中产生异常,也不会在设备上出现崩溃日志。没有收到内存警告。有什么办法可以缩小原因而不必评论代码?应用程序崩溃,没有例外或崩溃日志

+1

也许尝试添加一个异常处理程序:http://cocoawithlove.com/2010/05/handling-unhandled-exceptions-and.html – Johnmph 2012-02-08 11:14:12

+0

开始在AppDelegate中添加的NSLog()或设置在didFinishLaunchingWithOptions方法第一个断点和从那里开始。 – 2012-02-08 11:16:32

+0

你能提供更多的信息吗?例如。当Xcode连接到调试模式时会发生这种情况吗?模拟器或设备只会崩溃?应用程序是否启动?一段时间后,它会在某些用户操作中崩溃吗?通常,如果Xcode与调试器连接在一起,或者由于内存消耗过多或者看门狗发现启动,关闭和其他变体需要很长时间而导致应用程序死亡,则不会生成崩溃日志。 – Kerni 2012-02-08 12:43:50

回答

0

崩溃的原因是我用NSLog记录了一个非常大的数组 - 不知道这会导致应用程序崩溃!

+0

很高兴知道,你应该验证你的答案,也许编辑的主题更具体 – Johnmph 2012-02-08 13:29:39

0

单步执行代码可以帮助您确定应用程序崩溃的位置,这会在程序遇到任何“不良”代码之前停止程序执行(提供您将断点 - 代码停在正确的位置) 。您可以通过单击代码编辑窗格左侧的适当行号来添加断点,并可以通过查看 - >导航器 - >显示断点导航器菜单访问断点组织器。

您可能会对当前正在执行的方法或类有所暗示,在这种情况下,您应该在该方法的第一行放置一个断点,如果该类是UIViewController,则将断点放在第一行上它的 - (void)viewDidLoad方法可能会有所帮助。您可以在推送时将您的断点放在应用程序委托中的 - (void)applicationDidFinishLaunching的第一行。但是,这需要大量的步骤,而不仅仅是指导。

https://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Debugging/Debugging.html

苹果还建议开启静态分析,然后从中推断代码中的问题的输出。

相关问题