9

有人可以解释 Xcode 中Step Over ThreadStep Into Thread调试器命令的目的是什么吗?在什么情况下使用它们而不是通常的Step OverStep Into有用?有什么区别,什么时候重要?

编辑:为了澄清这个问题,我不是在问 Step Over/Step Into/Step Out 之间的区别,我是在问普通版本和“Thread”版本之间的区别,在什么情况下一个版本更多比其他有用。

4

4 回答 4

9
  • 踏入

执行当前语句,然后在下一条语句处停止。如果当前语句是函数或脚本调用,则调试器将进入该函数或脚本,否则将在下一条语句处停止。

  • 跨过

执行当前语句,然后在下一条语句处停止。如果当前语句是函数或脚本调用,则调试器将执行整个函数或脚本,并在函数调用之后的下一条语句处停止。

  • 走出去

如果函数是嵌套的,则跳出当前函数并上一级。如果在主体中,则脚本执行到最后,或者执行到下一个断点。跳过的语句被执行,但不单步执行。

参数是通用的关于调试所以看看

Eclipse 调试器中的 Step Into 和 Step Over 有什么区别?

具体来看,重点是线程,因此您可以将“多线程”应用程序视为单线程应用程序,而无需在断点处停止时运行多个事件/线程等。你有一个“稳定的环境”。

http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/060-Debug_Your_App/debug_app.html

于 2012-12-20T10:59:59.070 回答
5

我只是在同一个问题上挣扎。问题有点老了,但看起来我找到了正确的答案。

在文档中,我发现了类似的内容:

Control-Shift 仅在保持其他线程停止时才进入或越过活动线程(步骤图标在箭头下方显示虚线而不是实线)。

Control-Shift-< Fx Key or click > 分别是线程版本的 step over 和 step into 的快捷键。所以看起来这只执行当前线程并暂停所有其他线程。正常版本继续执行所有未挂起的线程。

于 2013-09-05T16:13:05.840 回答
2

这个术语的一个非常简单的解释:

步入、步入、步出命令(调试菜单)

于 2012-12-20T10:55:23.297 回答
1

根据这本书

Step Over ThreadStep Into Thread会在您推进正在调试的线程时冻结所有其他线程。按住 Shift 和 Control 的同时单击按钮,或选择 Debug菜单中的命令来获得效果。

于 2018-02-01T12:20:26.167 回答