我有一个 iOS 应用程序,我认为内存踩踏正在发生。所以我在 Xcode 中打开了 Guard Malloc、Guard Edges 和 Scribble 并运行它来尝试追踪它。但是启用 Guard Malloc 后,事情开始以非常奇怪的方式出错。在某些(可预测的)情况下,视图的背景不会绘制,您可以看到它们背后的视图。如果我进行文件下载,应用程序在下载结束时在主线程上崩溃,堆栈上没有我的代码(除了main
),有时控制台中会记录一些图形错误,例如:
<Error>: CGBitmapContextInfoCreate: unable to allocate 201000 bytes for bitmap data
<Error>: CGContextSetInterpolationQuality: invalid context 0x0
其中一些东西(例如CGBitmapContextInfoCreate
)在我的代码中的任何地方都没有使用。
记录的最后一件事是这样的:
Failed to VM allocate 262144 bytes
Explicitly trapping into debugger!!!
有没有其他人让 Guard Malloc 导致这些错误?这可能是什么根源?