Xcode:断点和奇怪的屏幕

时间:2015-09-16 23:17:02

标签: ios xcode debugging breakpoints

当我在Xcode中遇到问题时,我被告知用断点调试我的代码。单步执行代码,按下控制台部分上方的小箭头转到下一行。这很好,就像我在代码中的第150行放置一个断点一样,然后我可以" po"变量并找到它的值。

enter image description here

但是当我试图逐步完成我的代码,并从一个方法转到另一个方法时,很多时候我会被转移到这个奇怪的数字和字母屏幕上,而那些东西在那里甚至都没有遥感。见下文

enter image description here

Wtf这是否意味着,如果我应该对这个Klingon过渡做什么,我的Xcode项目显然已被截获了?

2 个答案:

答案 0 :(得分:1)

用Objective-C或Swift等语言编写的代码编译成machine code以便在给定的处理器上执行 - x86用于模拟器或ARM用于iOS设备 - 在这种情况下我猜你是在模拟器上运行。

机器代码指令执行非常谨慎的操作。例如,c=a+b会转化为类似的内容     从内存中获取a     从内存中获取b     添加a和b     将结果存储到c

的内存中

当您在调试器中单步执行代码时,它只会在程序的每一行停止,即使该步骤可能已经执行了许多机器代码指令。

你看到的是已经被调用的框架函数的assembly code,因为你已经进入" Xcode没有源的函数,因此它必须显示每个低级操作。

您可以使用' step out'按钮返回您的代码并使用'步骤'而不是进入'按钮,以避免看到这个。

调试器中突出显示的行实际上是检查%al register的值(寄存器是CPU芯片中的一小块内存)。如果结果是%al为0,则下一条指令将跳转到程序的不同部分。

答案 1 :(得分:0)

在左侧查看并在当前所选代码之前单击该命令。这通常会显示您在遇到断点之前编写的最后一段代码

在下面的例子中,0是遇到断点的地方,而1是我写的最后一段代码。

.