在 iPad 应用程序中,很难追踪崩溃情况。困难主要在于应用程序失败时没有错误或堆栈跟踪。就像凯撒·索泽(Keiser Soze)一样,它突然消失了,"就这样,哧啦一下,他不见了。"
我已经在模拟器和设备上都复制了崩溃情况。设备日志中没有任何记录,控制台也没有任何信息。
我知道在崩溃期间,一些 CoreGraphics
操作正在后台线程中进行。通常,三个左右的 NSOperations 会启动一些图像混合操作。
混合操作包括 CGContext* 调用 (DrawImage、SetBlendMode、SetAlpha 等)。NSOperation 回调到主线程的代理来处理图片并将其设置为 UIImage
,因此这不应该是 UI 主线程冲突,但目前我不排除任何情况。
有没有一些 Xcode 技巧可以追踪到具体发生了什么?或者至少获得更好的提示以确定问题所在?
编辑 我已经在 Instruments 中运行了跟踪内存使用情况,发现内存使用量大约稳定在 2MB 左右。因此,我不认为这是内存问题。但经过考虑,这个稳定的 2MB 看起来异常地低。有没有可能 Instruments 没有捕获到 CoreGraphics 的分配情况?