如何调试OpenGL ES崩溃?

时间:2009-09-04 00:23:37

标签: iphone debugging opengl-es crash

如果出现任何问题,OpenGL ES 1.1会让我的iPhone程序崩溃。

通常它发生在glDrawArrays中的某个地方,在堆栈上有几个glDestroyContext调用。

通常我会通过插入

来平分问题
{
  GLint iErr = glGetError();
  if (iErr != GL_NO_ERROR)
  {
    NSLog(@"GL error: %d (0x%x)", iErr, iErr);
  }
}

到处都是。

但有时候还不够。有没有其他方法可以对崩溃原因进行有用的诊断?

1 个答案:

答案 0 :(得分:0)

您是否在控制台输出中收到任何错误消息?仅从描述中,我想知道你是否得到BAD_ACCESS例外。如果我的假设是正确的,那么您可能会将错误的数组传递给glVertexPointerglColorPointer或其他相关函数。

假设它在glDrawArrays中死亡并且永远不会回来,我是否正确?换句话说,glGetError之后无法调用glDrawArrays,因为程序已经崩溃了?