检查Eclipse中的java类实例变量值

时间:2009-08-25 10:07:45

标签: java linux eclipse debugging

在一个应用程序中,我有一个包含一些成员变量和方法的类。使用错误参数调用方法会产生AssertionError。我已经设置了调试器来停止未捕获的异常。

问题是,当切换到调试透视图时,我只能看到类实例(调用函数的函数)和两个参数。我无法扩展类实例以查看其成员变量的值。实例左侧有一个空格,所以我假设应该有一个箭头,这样就可以像在大纲中那样扩展它。

我必须为此启用配置或其他内容吗?或者我误解了变量窗口?

如果重要,那就是Ubuntu Linux中的Eclipse 3.2.2。


[更新] 我从http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/R/eclipse-java-galileo-linux-gtk.tar.gz

下载了新版本

“关于Eclipse”现在报告“Build id:20090619-0625”。

测试用例:

class Foo {
    private int bar;

    Foo() {
        bar = 1;
    }

    public void set(int newbar) {
        assert (newbar<0);
        bar = newbar;
    }
}

class Test {

     public static void main (String[] args){
         Foo f = new Foo();
         f.set(5);
     }
}

显然,此代码会产生断言异常。但唯一的变化是“this”的图标,在新版本中从绿色圆圈变为蓝色三角形。仍然无法找到扩展它的方法。在这里,我可以看到Foo实例的“this”,以及“newbar”及其值,澄清一下,我想要做的是扩展“this”并查看其当前的“bar”值。

2 个答案:

答案 0 :(得分:2)

不,你没有。通常,调试视图中的第一行应该是一个条目“this”,它表示您当前正在运行的实例。它应该有一个“+”,您可以单击它来展开实例变量列表。

如果这不起作用,可能您的堆栈框架错误(可以在堆栈跟踪列表中选择它),或者Eclipse无法解析您的源代码位置,或者其他错误。

尝试创建一个可重现的小测试用例,然后发布。然后我们会看到......

顺便说一句: Eclise 3.2.2相当陈旧。考虑升级到3.5以查看问题是否仍然存在。您可以并排安装多个Eclipse版本(只需解压缩到一个目录),因此无需破坏现有安装。

答案 1 :(得分:2)

#eclipse进行一些讨论之后,我们发现VM就是问题所在。我在跑:

/usr/lib/jvm/java-1.5.0-gcj-4.3-1.5.0.0/bin/java

将其更改为:

/usr/lib/jvm/java-6-openjdk/bin/java

并将-ea标志作为VM的参数提供,让我扩展检查bar值的类实例。问题解决了。