![](/img/trans.png)
[英]What is the difference between Step in, Step out and Step Over?
[英]What is the difference between Step Into and Step Over in a debugger
我想调试(Java)程序的整个流程。 我看到有几个选项可以单步执行我的程序。 step into和step over和有什么不一样?
考虑以下代码,其中包含g()
f(x)
行的当前指令指针(接下来将执行的行,由->
指示g()
,已被main()
的g(2)
行调用:
public class testprog {
static void f (int x) {
System.out.println ("num is " + (x+0)); // <- STEP INTO
}
static void g (int x) {
-> f(x); //
f(1); // <----------------------------------- STEP OVER
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- STEP OUT OF
}
}
如果您要在那时进入,您将移动到f()
的println()
行,进入函数调用。
如果您要跳过那个点,您将移动到g()
的f(1)
行,跳过函数调用。
调试器的另一个有用功能是单步退出或单步返回。 在这种情况下,单步返回基本上会引导您完成当前功能,直到您返回上一级。 换句话说,它将逐步通过f(x)
和f(1)
,然后返回到调用函数以在main()
g(3)
处结束。
在调试代码行时,以下是通常的场景:
Eclipse 具有其他高级调试功能,但这些是基本的基础知识。
步入将深入研究方法调用
step over 只会执行该行并转到下一行
您无法通过使用 step over 来查看方法的详细信息。 如果你想跳过当前行,你可以使用step over,那么你只需要按一次F6就可以移动到下一行。 如果您认为该方法有问题,请使用F5检查详细信息。
Step Into调用当前选定行上要执行的下一个表达式,并在调用的方法中的下一个可执行行暂停执行。
Step Over当前选择的行被执行并在下一个可执行行上挂起。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.