Umarım birileri bana neler olduğunu anlamaya yardım edebilir.glDrawArrays() üzerinde SIGKILL hata ayıklama. iPhone iOS
cocos2d framework
numaralı telefonu kullanan bir iPhone oyunu geliştiriyorum. Zaman zaman SIGKIL
sinyali nedeniyle kodumu durduracağım. “Devam” butonuna basarsam oyun herhangi bir sorun olmadan devam eder. Konsol günlüğü temiz (hata veya uyarı iletisi yok) OpenGL
'u kullanarak tekstüre dikdörtgen çizimi çizen özel sınıfımda anladım. Bu kod, saniyede yaklaşık 300 kez yürütülür ve SIGKILL
'u yalnızca 1-2 saatte bir kez alır.
(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}
Yığın izleme: içinde
#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:]()
son satırları İşte
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);
o an üzerinde Dizilerin içeriği: Burada
kod parçasıdır log:
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
Birisi bana bu durumun nasıl hatalarını ayıklayacağını ve neler olup bittiğini anlatabileceğini söylerse minnettar olurum.
Bunu hiç anladın mı? – jsherk
Hayır. Sadece xCode ile çalışırken ve gerçek oyuncuları etkilemeyeceğini umuyorum. XCode'a bağlı cihazda hata ayıklama yaparken her zaman var. – Marmot
Çok zaman zaman Xcode'daki simülatörlerde çalışırken anladım. Ancak, test ederken Xcode'a bağlı cihazı genellikle bırakmamam da, bir cihazda asla çökmemesine rağmen. Bu yüzden düşüncelerim de Xcode ile ilgili. – jsherk