首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在XCode中调试-运行代码和断点

在XCode中调试-运行代码和断点
EN

Stack Overflow用户
提问于 2012-10-03 04:06:35
回答 2查看 25.4K关注 0票数 7

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

不是单步通过断点,而是逐行单步通过代码,这样我就可以看到它到哪里去了,运行了哪些方法等等。

这是可能的吗,如果是的话,是如何实现的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-03 04:18:25

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

play按钮alt text:Continue program execution。你可能已经找到这个了。按下它将前进到下一个断点。

跳转箭头alt text:Step over。重复按此按钮将允许您在当前范围内前进程序,就像您的程序一样。它将允许您通过当前方法一步一步地观察程序的行为。当当前方法完成时,Step over会将您带到程序堆栈中上一步的调用方法。

向下箭头alt text:单步执行。按下此按钮将跟随新方法进入其作用域,并允许您查看已编译用于调试的被调用方法中的代码。例如,在上面的调试窗口中单击当前代码行将转到_generateSources方法,然后您可以单步执行该方法。

向上箭头alt text:Step out。将您带出当前上下文,进入程序堆栈中的上一步调用方法。这与使用Step over完成方法、正常执行程序并执行未使用Step over调试的原始作用域中的所有代码行的行为相同。

单击蓝色背景的轮廓可以查看当前的调用堆栈。调用堆栈将始终从当前作用域一直前进到为启动程序而调用的第一个方法。您在这里看到的每个方法都是按顺序调用的,以便到达-HelloWorldLayer初始化。当你按Step out时,当前执行的代码行将返回到-CCNode节点,如果你有它的源代码,你可以浏览它。

左边是当前执行的代码行的范围内可见的当前局部变量(此图中的第76行)。这些变量是您如何真正使用上述命令的方法,如Step over。background和winSize是在此作用域中定义的局部变量,目前正在使用。当作用域退出时,它们将消失。_cmd是一个指针,指向Objective-C:-HelloWorldLayer init中当前正在调用的选择器。在成为高级调试器之前,您不需要它。self是指向一个对象的指针,该对象包含属于当前正在执行的类HelloWorldLayer的所有ivar,而objc_super是指向HelloWorldLayer的父类的指针。

票数 23
EN

Stack Overflow用户

发布于 2012-10-03 04:28:50

我会在@Thomson Corner的答案中添加键盘快捷键。

  • 使用'c‘继续。's‘表示下一步,'n’表示下一步,'f‘表示完成。我不喜欢用鼠标操作调试器。这些图标太小了,把指针放在上面是一件痛苦的事情(偶尔)。我一直都是个键盘迷,使用键盘真的很舒服。
  • 你也应该尝试使用po -它会打印出带有输入建议的变量值。比如po _varName。便于检查变量是否为空值等,您还可以通过修改~/.lldbinit.

来更改命令别名

这是官方教程:http://lldb.llvm.org/tutorial.html。还有另一个教程:http://www.informit.com/articles/article.aspx?p=1829415&seqNum=6。我上面指出的是程序员通常执行的最基本的调试功能。还有更多的选项,如异常断点和加载程序,但我非常确定,如果你刚刚开始,这些都是另一天的事情。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12697473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档