Надеюсь, кто-нибудь поможет мне разобраться, что происходит.
Я разрабатываю игру для iPhone, используя фреймворк cocos2d
. Время от времени мой код останавливается из-за сигнала SIGKIL
. Если я нажму кнопку «Продолжить», игра продолжится без проблем.
Журнал консоли чист (нет сообщений об ошибках или предупреждений)
Я получаю его в своем пользовательском классе, который рисует текстурированный прямоугольник, используя OpenGL
.
Этот код выполняется около 300 раз в секунду, и я получаю SIGKILL
только один раз в 1-2 часа.
Вот кусок кода:
glColor4f(1.f, 1.f, 1.f, 1.f);
i = 1;
glBindTexture(GL_TEXTURE_2D, curText);
glVertexPointer(2, GL_FLOAT, 0, screenCoord [i]);
glTexCoordPointer(2, GL_FLOAT, 0, textureCoord [i]);
SIGKIL --> glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
Вот содержимое массивов на тот момент:
(gdb) p *screenCoord[1]@8
$8 = {0, 296, 249.827072, 296, 0, -0, 249.827072, -0}
(gdb) p *textureCoord[1]@8
$12 = {0.456224144, 0.29296875, 0.700195312, 0.29296875, 0.456224144, 0.58203125, 0.700195312, 0.58203125}
Трассировка стека:
#0 0x123028a7 in <????> ()
#1 0x12301528 in <????> ()
#2 0x0a767092 in gldRenderFillPolygonPtr ()
#3 0x12300185 in <????> ()
#4 0x0a55c3e1 in gleDrawArraysOrElements_ExecCore ()
#5 0x0a555280 in glDrawArrays_IMM_Exec ()
#6 0x01522c7c in glDrawArrays ()
#7 0x0007e6bd in -[CLScrollingBack draw] at /MyProjects/_ROBOTS/RobotsAttack/AbductedAliens game template/CLScrollingBack.m:430
#8 0x001bfdaa in -[CCNode visit] ()
#9 0x001bfd7d in -[CCNode visit] ()
#10 0x001bfd7d in -[CCNode visit] ()
#11 0x0020f708 in -[CCDirectorIOS drawScene] ()
#12 0x00211bb4 in -[CCDirectorDisplayLink mainLoop:] ()
Последние строки в логе:
2012-06-20 13:05:27.368 RobotsAttack![9487:207] cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from [2] to [4].
2012-06-20 13:05:27.368 RobotsAttack![9487:207] cocos2d: CCSpriteBatchNode: resizing TextureAtlas capacity from [4] to [6].
Current language: auto; currently objective-c
Буду признателен, если кто-нибудь сможет подскажите как отладить эту ситуацию и определить что происходит.