8badf00d是什么意思?

有时我的iPhone应用程序崩溃了一个奇怪的crashlog,读取exception代码是0x8badf00d。 堆栈跟踪显示应用程序执行的随机快照,但没有任何可疑的。 这种情况很less发生,我无法find如何重现它。 有人知道更多关于这种exception和exception代码吗?

这里是我的crashlogs摘录:

exceptiontypes:00000020
例外代码:0x8badf00d
突出显示的主题:0

特定应用信息:
无法停用

线程0:

这里没有什么可疑的

未知的线程崩溃与未知的味道:5,state_count:1

0x8badf00d是应用程序花费太长时间启动或终止时,看门狗引发的错误代码。 请参阅苹果iPhone OS应用程序崩溃报告文档

这是HexSpeak,见这里: http : //en.wikipedia.org/wiki/Hexspeak

如果您得到Exception Type: 00000020Exception Codes: 0x8badf00d那么它是看门狗超时崩溃报告 。 exception代码0x8badf00d被称为"ate bad food"

reason for this crash is synchronous activity on main thread.最常见的reason for this crash is synchronous activity on main thread. 修复方法是switch to asynchronous activity主线程上的switch to asynchronous activity

Apple文档的屏幕截图

请参阅此Apple文档以获取更多细节。

这是一个具有良好幽默感的开发人员添加的失败代码。 由于hex使用字母和数字,所以可能会得到hex数字,看起来像英文单词,如“0xdeadbeef”,等等。我确定例外有一个特定的含义,但如果没有主要症状与之相关联,你可以忽略它,没有太多的关注。

这是程序员的一个笑话的想法。 你必须为你的代码select一个数字,但是这个数字本身并不意味着什么。 8badf00d只是写入数字2,343,432,205的另一种方式,因为它在以hex表示的exception日志中看起来很“有趣”。

来自wikipedia当使用debugging堆时,0xBAADF00D(“bad food”)被微软的LocalAlloc(LMEM_FIXED)用来指示未初始化的分配的堆内存。