当我在Xcode中遇到问题时,我被告知用断点调试我的代码。单步执行代码,按下控制台部分上方的小箭头转到下一行。这很好,就像我在代码中的第150行放置一个断点一样,然后我可以" po"变量并找到它的值。
但是当我试图逐步完成我的代码,并从一个方法转到另一个方法时,很多时候我会被转移到这个奇怪的数字和字母屏幕上,而那些东西在那里甚至都没有遥感。见下文
Wtf这是否意味着,如果我应该对这个Klingon过渡做什么,我的Xcode项目显然已被截获了?
答案 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)