Step Over Thread和Step Into Thread命令有什么用?

时间:2012-12-20 10:39:51

标签: xcode debugging gdb lldb

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

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

4 个答案:

答案 0 :(得分:9)

  • 踏入

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

  • 继续

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

  • 走出去

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

参数一般关于调试所以请看

What is the difference between Step Into and Step Over in the Eclipse debugger?

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

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

答案 1 :(得分:3)

我正在努力解决同样的问题。问题有点陈旧,但看起来我找到了正确的答案。

Here in documentation,我发现了类似的东西:

  

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

Control-Shift-< Fx键或点击>是步骤和步入的线程版本的相应快捷方式。因此,它看起来只执行当前线程并暂停所有其他线程的临时。正常版本继续执行所有未挂起的线程。

答案 2 :(得分:2)

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

Step Into, Step Over, Step Out Commands (Debug Menu)

答案 3 :(得分:1)

根据this book

  

跳过线程逐步进入线程在推进正在调试的线程时冻结所有其他线程。按住Shift和   单击按钮时控制,或选择中的命令   调试菜单,以获得效果。