我在哪里找到传递给setBounds的参数:包含CGRect,我该如何阅读?

时间:2014-07-08 11:40:57

标签: objective-c debugging ios-simulator lldb

我遇到一个问题,即边界在动画期间获取NaN原点值,而堆栈跟踪是所有UI / CA.我的攻击角度是在setBounds:设置一个符号断点,并且只有在找到NaN值时才会中断。

我对论证传递有一套基本的理解,但我还没有必要的低级别c / objc / asm知识。提前感谢您提供有关如何继续前进的任何提示。

作为参考,这是一个电话的例子

0x382a69:  xorps  %xmm0, %xmm0
0x382a6c:  movaps %xmm0, -0xa8(%ebp)
0x382a73:  movl   0xae1a83(%edi), %eax
0x382a79:  movl   %eax, -0xd0(%ebp)
0x382a7f:  movsd  -0xa8(%ebp), %xmm0
0x382a87:  movsd  -0xa0(%ebp), %xmm1
0x382a8f:  movsd  %xmm1, 0x10(%esp)
0x382a95:  movsd  %xmm0, 0x8(%esp)
0x382a9b:  movl   %eax, 0x4(%esp)
0x382a9f:  movl   %ebx, (%esp)
0x382aa2:  calll  0xaff28a                  ; symbol stub for: objc_msgSend

和setBounds的开头:

QuartzCore`-[CALayer setBounds:]:
0x1b09c7f:  pushl  %ebp
0x1b09c80:  movl   %esp, %ebp
0x1b09c82:  pushl  %ebx
0x1b09c83:  pushl  %edi
0x1b09c84:  pushl  %esi
0x1b09c85:  subl   $0x4c, %esp
0x1b09c88:  calll  0x1b09c8d                 ; -[CALayer setBounds:] + 14
0x1b09c8d:  popl   %edi
0x1b09c8e:  leal   0x10(%ebp), %esi
0x1b09c91:  movl   0x8(%ebp), %ebx
0x1b09c94:  xorps  %xmm0, %xmm0
0x1b09c97:  ucomiss 0x18(%ebp), %xmm0
0x1b09c9b:  ja     0x1b09ca3                 ; -[CALayer setBounds:] + 36

0 个答案:

没有答案