在一个应用程序中,我有一个包含一些成员变量和方法的类。使用错误参数调用方法会产生AssertionError。我已经设置了调试器来停止未捕获的异常。
问题是,当切换到调试透视图时,我只能看到类实例(调用函数的函数)和两个参数。我无法扩展类实例以查看其成员变量的值。实例左侧有一个空格,所以我假设应该有一个箭头,这样就可以像在大纲中那样扩展它。
我必须为此启用配置或其他内容吗?或者我误解了变量窗口?
如果重要,那就是Ubuntu Linux中的Eclipse 3.2.2。
“关于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”值。
答案 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
值的类实例。问题解决了。