在eclipse中持续观察变量,即使它不在范围内

时间:2015-08-08 07:53:31

标签: java eclipse debugging gdb

说,我有一个递归代码,如下所示,变量'结果'在每次递归调用中不断更新。我想从"之前的"中看到这个变量的值。即使是在不在当前范围内的短暂时段,也要打电话,因此没有值(尚未)。

我怎么能在eclipse中这样做?

说我的代码是这样的:

public class Test {

    public static void main(String[] args) {
        System.out.println(fun(5));
    }

    static int fun(int n) {
        int resultshere = 0;
        int ret = 0;

        if (n == 0) {
            resultshere = 1;
            return resultshere;
        }

        ret = fun(n - 1);
        resultshere = n * ret;

        return resultshere;
    }

}

1 个答案:

答案 0 :(得分:2)

在Eclipse中调试时,您总能看到堆栈跟踪。 stacktrace显示一个接一个地调用的方法。对于递归调用,您将看到调用相同的方法:

Debug View - Stacktrace

在这里,您可以看到对fun方法的三次调用。第三个调用会突出显示,您会看到参数n的值为3(在变量视图中)。

如果您现在对之前的通话感兴趣,只需选择您想要的方法通话:

Debug View - Previous Method

在这里,您可以看到所选的第一个方法调用,现在您可以在变量视图中看到此方法调用所具有的所有变量(和参数)。