ios – 在XCode中调试 – 运行代码和断点

我想知道如何在 xcode中进行最佳调试.我知道如何设置一个断点但理想情况下我希望模拟器停止然后逐步执行代码……

不是单步执行断点,而是逐行遍历代码,这样我就可以看到它的位置,运行的方法等等……

这有可能,如果是这样的话怎么样?

解决方法

Xcode 4的代码窗口的左下角,您可以看到调试步骤控件.每个都有一个简短的替代文字来解释它.我将在这里稍微详细解释一下.学习成为专家调试器是许多教科书的主题.

播放按钮alt文本:继续执行程序.你可能已经发现了这个.按此按钮前进到下一个断点.

跳跃箭头替换文字:跳过.反复按此按钮将允许您按照程序的当前级别推进您的程序.它将允许您逐步通过当前方法观察程序的行为.当前方法完成后,Step over将带您进入程序堆栈中的调用方法.

向下箭头替换文字:步入.按下此按钮将跟随新方法进入其范围,并允许您查看被调用方法中的代码(如果已编译以进行调试).例如,在上面的调试窗口中的当前代码行上单击此按钮将转到_generateSources方法,然后您可以通过Step over进行该方法.

向上箭头替换文字退出.从程序堆栈中逐步升级当前上下文和调用方法.这与使用Step over完成一个方法,正常执行程序并执行原始范围中未使用Step over调试的所有代码行相同.

单击带有蓝色背景的轮廓以查看当前的调用堆栈.调用堆栈将始终从当前作用域一直进行到调用以启动程序的第一个方法.您在此处看到的每个方法都是按顺序调用的,以便达到 – [HelloWorldLayer init].当您按下Step out时,当前执行代码行将返回 – [CCNode节点],如果您有源代码,则可以浏览它.

左侧是当前正在执行的代码行范围内可见的局部变量(此图像中的第76行).这些变量是你如何真正使用上述命令,如Step over. background和winSize是在此范围内定义并且当前正在使用的局部变量.当范围退出时,它们将消失. _cmd是指向当前在Objective-C中调用的选择器的指针: – [HelloWorldLayer init].在您是高级调试器之前,您不需要这样做. self是指向包含所有属于当前正在执行的类的ivars的对象的指针,HelloWorldLayer和objc_super是指向HelloWorldLayer父类的指针.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...