0

在 iOS 模拟器中工作 1-2 分钟后,XCode 让我跳出汇编程序。(我有 XCode 4.6.2 )

  • 这不是一个例外(我有全局断点)
  • 这不是 Assert 或BAD ACCESS- 我可以按下屏幕底部的播放按钮,然后应用程序向前移动。

通常它会在某处中断:

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); (I am using OpenGL 1.1)

几乎每次都会发生这种情况,具有 90% 的可复制性 为什么它会跳出到汇编程序?我在申请中有什么问题吗?

通常它会在这里中断

OpenGLES`glDrawArrays:
0xcc50dd:  pushl  %ebp
0xcc50de:  movl   %esp, %ebp
0xcc50e0:  pushl  %edi
0xcc50e1:  pushl  %esi
0xcc50e2:  subl   $16, %esp
0xcc50e5:  movl   $30, (%esp)
0xcc50ec:  calll  0xccb5c2                  ; symbol stub for: pthread_getspecific
0xcc50f1:  testl  %eax, %eax
0xcc50f3:  je     0xcc5116                  ; glDrawArrays + 57
0xcc50f5:  movl   16(%ebp), %ecx
0xcc50f8:  movl   12(%ebp), %edx
0xcc50fb:  movl   8(%ebp), %esi
0xcc50fe:  movl   16(%eax), %edi
0xcc5101:  movl   %ecx, 12(%esp)
0xcc5105:  movl   %edx, 8(%esp)
0xcc5109:  movl   %esi, 4(%esp)
0xcc510d:  movl   %edi, (%esp)
0xcc5110:  calll  *280(%eax)
0xcc5116:  addl   $16, %esp   <<<<<< Usually it break here
0xcc5119:  popl   %esi
0xcc511a:  popl   %edi
0xcc511b:  popl   %ebp
0xcc511c:  ret

或像这样:

0x18401c64:  cvttps2dq%xmm4, %xmm0   <<< Thread 1: EXC_??? (11) (code=0, subcode=0x0)
0x18401c68:  movaps %xmm4, %xmm5
0x18401c6b:  psrld  $31, %xmm5
0x18401c70:  psubd  %xmm5, %xmm0
0x18401c74:  movdqa %xmm0, -3592(%ebp)
0x18401c7c:  pshufd $80, 48(%esi), %xmm5

堆栈在这里:

0 0x1880210a
6 glDrawArrays
7 [Displaybrush.....] //my method for display
4

0 回答 0