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);
}
}
を挿入することで、問題を二分しています。
ただし、時にはそれでは不十分です。クラッシュの理由で有用な診断を得る他の方法はありますか?
追加のコンソールメッセージはありません(クラッシュタイプとは別に、通常は不正なアクセスです)。通常は、入力データの一部が無効であるか、何らかの状態を有効にするのを忘れています。しかし、何が間違っているのかを見つけるまでには時間がかかります。私は通常、バイナリ検索に頼る必要があります。 :( –
私はあなたのバッファよりも多くの三角形を描画しようとしていないことを確認するでしょう。OpenGLがそうしてはならないメモリに入っているように聞こえます。あなたは本当にバッファーにいます。 –