繁体   English   中英

在Eclipse中检查Java类实例变量值

[英]Inspecting java class instance variable values in Eclipse

在一个应用程序中,我有一个带有一些成员变量和方法的类。 用错误的参数调用该方法会产生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”报告“内部版本号: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”。

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

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

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

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

#eclipse进行了一些讨论#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的值。 问题解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM