有人可以解释Xcode中 Step Over Thread 和 Step Into Thread 调试器命令的目的是什么?在什么情况下使用它们而不是通常的 Step Over 和 Step Into 是有用的?有什么区别,什么时候重要?
编辑:为了澄清这个问题,我不是在询问Step Over / Step Into / Step Out之间的区别,我问的是普通版和“Thread”版本之间的区别,以及在什么情况下版本比另一个更有用。
答案 0 :(得分:9)
执行当前语句,然后在下一个语句处停止。如果当前语句是函数或脚本调用,则调试器将进入该函数或脚本,否则它将在下一个语句处停止。
执行当前语句,然后在下一个语句处停止。如果当前语句是函数或脚本调用,则调试器执行整个函数或脚本,并在函数调用后的下一个语句处停止。
如果函数嵌套,则退出当前函数并向上一级。如果在主体中,脚本将执行到最后,或者执行到下一个断点。跳过的语句被执行,但没有逐步执行。
参数一般关于调试所以请看
What is the difference between Step Into and Step Over in the Eclipse debugger?
具体看,焦点是线程,因此您可以将“多线程”应用程序视为单线程应用程序,而不会在断点处停止时运行多个事件/线程等。你有一个“稳定的环境”。
答案 1 :(得分:3)
我正在努力解决同样的问题。问题有点陈旧,但看起来我找到了正确的答案。
Here in documentation,我发现了类似的东西:
Control-Shift仅在保持其他线程停止时进入或超过活动线程(步骤图标在箭头下方显示虚线而不是实线)。
Control-Shift-< Fx键或点击>是步骤和步入的线程版本的相应快捷方式。因此,它看起来只执行当前线程并暂停所有其他线程的临时。正常版本继续执行所有未挂起的线程。
答案 2 :(得分:2)
这个术语的一个非常简单的解释:
答案 3 :(得分:1)
根据this book:
跳过线程和逐步进入线程在推进正在调试的线程时冻结所有其他线程。按住Shift和 单击按钮时控制,或选择中的命令 调试菜单,以获得效果。