2
OpenGL ES 1.1喜欢在我的iPhone程序崩溃时发生任何错误。如何调试OpenGL ES崩溃?
通常它发生在glDrawArrays里的某个地方,在堆栈上有几个glDestroyContext调用。
通常我通过插入
{
GLint iErr = glGetError();
if (iErr != GL_NO_ERROR)
{
NSLog(@"GL error: %d (0x%x)", iErr, iErr);
}
}
到处都是平分的问题。
但是有时这还不够。有没有其他方法可以在碰撞原因上获得有用的诊断信息?
没有额外的控制台消息(也就是说,除了崩溃类型 - 确实通常是不好的访问)。通常它可能是一些不好的输入数据,或者我忘记启用某些状态。但需要时间才能找到具体的问题。通常我不得不求助于二分查找。 :( – 2009-10-01 16:16:55
我会检查以确保你没有试图绘制比你的缓冲区包含更多的三角形,这听起来像OpenGL进入它不应该的内存,这可能意味着你告诉它,你有更多的顶点你真的在缓冲区中。 – 2009-10-03 06:04:02