一尘不染

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

java

我想调试Java程序的整个流程。Eclipse中F5(进入)和F6(进入)之间有什么区别?


阅读 424

收藏
2020-09-08

共1个答案

一尘不染

考虑以下代码,将当前指令指针(将在下一步执行的行,由表示->)放在f(x)in 的行g(),并由g(2)in 的行调用main()

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
    }
}

如果此时要 进入 ,则将移至中的println()f(),进入函数调用。

如果要在那一步 结束 ,您将移至中的f(1)g(),从而结束函数调用。

调试器的另一个有用功能是单步 退出 或单步 返回。
在这种情况下,单步返回基本上将使您遍历当前函数,直到您返回一个级别。换句话说,它将逐步执行f(x)f(1),然后返回到调用函数,最后到达g(3)in
main()

Eclipse(至少是Europa,这是我目前可以使用的唯一一个)F5用于step intoF6for step overF7for
step return

2020-09-08