Objective c 我在iPhone应用程序中遇到错误0x8badf00d,这不是常见的可疑问题

Objective c 我在iPhone应用程序中遇到错误0x8badf00d,这不是常见的可疑问题,objective-c,iphone,crash,Objective C,Iphone,Crash,我的应用程序在启动时随机崩溃 我很确定不是启动时间(如中所述),因为应用程序启动速度很快 最糟糕的是崩溃日志无法复制(我无法获得源代码行号)。这就是错误: Exception Type: 00000020 Exception Codes: 0x8badf00d Highlighted Thread: 0 Application Specific Information: Failed to launch Thread 0: 0 JhonSell

我的应用程序在启动时随机崩溃

我很确定不是启动时间(如中所述),因为应用程序启动速度很快

最糟糕的是崩溃日志无法复制(我无法获得源代码行号)。这就是错误:

Exception Type:  00000020
Exception Codes: 0x8badf00d
Highlighted Thread:  0

Application Specific Information:
Failed to launch
Thread 0:
0   JhonSell                        0x000c63d6 0x1000 + 807894
1   JhonSell                        0x000c7ffe 0x1000 + 815102
2   JhonSell                        0x000c9646 0x1000 + 820806
3   JhonSell                        0x000ca50a 0x1000 + 824586
4   JhonSell                        0x000b3b72 0x1000 + 732018
5   JhonSell                        0x000b3e1e 0x1000 + 732702
6   JhonSell                        0x000b3fd4 0x1000 + 733140
7   JhonSell                        0x0000a312 0x1000 + 37650
8   JhonSell                        0x0000aa7c 0x1000 + 39548
9   JhonSell                        0x00006e7c 0x1000 + 24188
10  JhonSell                        0x0000fede 0x1000 + 61150
11  JhonSell                        0x00004080 0x1000 + 12416
12  UIKit                           0x30a4ef24 -[UIApplication performInitializationWithURL:asPanel:] + 160
13  UIKit                           0x30a57dec -[UIApplication _runWithURL:] + 644
14  Foundation                      0x306945a2 __NSFireDelayedPerform + 326
15  CoreFoundation                  0x30269d88 CFRunLoopRunSpecific + 2642
16  CoreFoundation                  0x30269320 CFRunLoopRunInMode + 44
17  GraphicsServices                0x31567e58 GSEventRunModal + 268
18  UIKit                           0x30a4fa6c -[UIApplication _run] + 520
19  UIKit                           0x30a591d0 UIApplicationMain + 1132
20  JhonSell                        0x00002290 0x1000 + 4752
21  JhonSell                        0x0000202c 0x1000 + 4140
我无法调试它(我尝试连接,但我认为应用程序会被看门狗杀死)。

在我看来,你“吃了不好的食物”(明白吗?8个坏f00d?)

无论如何,据我所知,这意味着您在应用程序中使用了一个未初始化的指针,从它在初始化时的外观来看

(或者在任何情况下,评论中的那个家伙似乎就是这么说的)

苹果的文档表明,这个错误代码表示看门狗超时:

看门狗超时:以异常代码0x8badf00d区分,当应用程序启动或终止时间过长时,会发生超时

鉴于坠机报告也说明了同样的事情;看起来很有可能就是这样。也许不是应用程序启动;但是终止-iPhone操作系统希望能够非常快地终止应用程序(例如,在接到来电时返回操作系统)-可能您的应用程序关闭时间过长


关于回溯中缺少符号的问题-您看过该实用程序了吗?

UIApplicationLegate实现中有三种方法必须在5-6秒内完成,否则iPhone将杀死您的应用程序(这不适用于连接调试器和模拟器时)。我不确定确切的时间间隔是否被记录在任何地方,但这是我通过实验确定的。启动时有两个选项,ApplicationIDFinishLaunching:和application:didFinishLaunchingWithOptions,关闭时有一个选项,applicationWillTerminate

您需要检查这些方法中的任何网络访问或耗时操作是否异步执行,以便该方法能够快速返回

这是我所知道的唯一一件会在启动时导致看门狗崩溃的事情

关于堆栈跟踪的更多提示,如果您使用的是OS3.0和3.0SDK,Organizer应该在使用之前完成。只要确保您将dSYM文件从硬盘上的-exact-build保存到spotlight某处即可。然后,当您在XCode中查看组织者下的@trace时,它会自动为您添加符号

被苹果用作 iPhone崩溃报告中的异常代码 当应用程序花费的时间太长时 启动或终止

另见

DEADFA11当用户强制退出应用程序时,苹果将其用作iPhone崩溃报告中的异常代码


您可以查看本苹果技术说明的底部,了解苹果的解释:

另外,这里截图如下:

本案并非如此。