代码之家  ›  专栏  ›  技术社区  ›  Mizipzor

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

  •  2
  • Mizipzor  · 技术社区  · 15 年前

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

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

    是否有必须启用的配置或某些内容?或者我误解了变量窗口?

    如果重要的话,这就是UbuntuLinux中的Eclipse3.2.2。


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

    “about eclipse”现在报告“build id:20090619-0625”。

    Testcase:

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

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

    2 回复  |  直到 15 年前
        1
  •  2
  •   sleske    15 年前

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

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

    尝试创建一个可复制的小测试用例,并发布它。然后我们会看到…

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

        2
  •  2
  •   Mizipzor    15 年前

    经过一些讨论 #eclipse ,我们发现虚拟机是问题所在。我在跑步:

    /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 . 问题解决了。