IOS调试Xcode中的内存引用

IOS调试Xcode中的内存引用,ios,debugging,Ios,Debugging,我是xcode新手,我正在尝试找出如何调试。我的问题是我的调试器一直转到这个屏幕。(我还不能发送图像) UIKit`-[UIControl发送操作:到:forEvent:]: 0x18a7762f4 <+0>: stp x22, x21, [sp, #-48]! 0x18a7762f8 <+4>: stp x20, x19, [sp, #16] 0x18a7762fc <+8>: stp x29, x30, [sp, #32] 0x18

我是xcode新手,我正在尝试找出如何调试。我的问题是我的调试器一直转到这个屏幕。(我还不能发送图像)

UIKit`-[UIControl发送操作:到:forEvent:]:

0x18a7762f4 <+0>:  stp    x22, x21, [sp, #-48]!
0x18a7762f8 <+4>:  stp    x20, x19, [sp, #16]
0x18a7762fc <+8>:  stp    x29, x30, [sp, #32]
0x18a776300 <+12>: add    x29, sp, #32
0x18a776304 <+16>: mov    x19, x4
0x18a776308 <+20>: mov    x20, x2
0x18a77630c <+24>: mov    x21, x0
0x18a776310 <+28>: mov    x0, x3
0x18a776314 <+32>: bl     0x1926cb424
0x18a776318 <+36>: mov    x22, x0
0x18a77631c <+40>: adrp   x8, 94917
0x18a776320 <+44>: add    x8, x8, #4072
0x18a776324 <+48>: ldr    x0, [x8]
0x18a776328 <+52>: adrp   x8, 91481
0x18a77632c <+56>: ldr    x1, [x8, #3376]
0x18a776330 <+60>: mov    x2, x20
0x18a776334 <+64>: mov    x3, x22
0x18a776338 <+68>: mov    x4, x21
0x18a77633c <+72>: mov    x5, x19
0x18a776340 <+76>: bl     0x1926cb298
0x18a776344 <+80>: mov    x0, x22
0x18a776348 <+84>: ldp    x29, x30, [sp, #32]
0x18a77634c <+88>: ldp    x20, x19, [sp, #16]
0x18a776350 <+92>: ldp    x22, x21, [sp], #48
0x18a7762f4:stp x22,x21,[sp,#-48]!
0x18a7762f8:stp x20,x19[sp,#16]
0x18a7762fc:stp x29,x30[sp,#32]
0x18a776300:添加x29,sp,#32
0x18a776304:mov x19,x4
0x18a776308:mov x20,x2
0x18a77630c:mov x21,x0
0x18a776310:mov x0,x3
0x18a776314:bl 0x1926cb424
0x18a776318:mov x22,x0
0x18a77631c:adrp x894917
0x18a776320:添加x8,x8,#4072
0x18a776324:ldr x0,[x8]
0x18a776328:adrp x891481
0x18a77632c:ldr x1[x8,#3376]
0x18a776330:mov x2,x20
0x18a776334:mov x3,x22
0x18a776338:mov x4,x21
0x18a77633c:mov x5,x19
0x18a776340:bl 0x1926cb298
0x18a776344:mov x0,x22
0x18a776348:ldp x29,x30[sp,#32]
0x18a77634c:ldp x20,x19[sp,#16]
0x18a776350:ldp x22,x21,[sp],#48
->

我知道这些是内存引用,但它有什么用呢?在这个屏幕上有什么有用的方法吗?或者我应该跳过这个


感谢您对新手的帮助。

您正在查看汇编代码,因为调试器在某些没有源代码的函数或方法中停止。在这种情况下,最好的做法是查看堆栈跟踪并选择代码中最顶层的堆栈帧。这将显示代码中导致问题的最后一条指令

堆栈跟踪显示在左侧的调试导航器中:


您可以看到这里选择了第一个堆栈帧,因为我在代码中遇到了一个断点(您可以在右侧看到),调试器在该行停止。在您的情况下,可能遇到异常或其他错误,导致调试器在非您的代码中停止,因此您需要查找列表中以黑色而不是灰色显示的第一个堆栈帧。单击该按钮,您将看到错误发生时代码的位置。

调试时,您希望确保捕获异常

  • 转到断点导航器(⌘-7)
  • 点击加号。您将看到:

  • 选择“添加异常断点”


  • 启用该选项后,应用程序将在出现异常时停止,并在调试导航器中显示回溯(⌘-6) .

    显示回溯的另一个选项是在调试控制台中键入bt。