EventDispatchThread.run() line: not available [local variables unavailable]
代码非常大,我无法在这里发布它,但是以下是一些细节:
这个语句似乎会崩溃,我无法使用调试器进入构造函数:
Satellite satellite = new Satellite();
当我在这一行设置断点并尝试进入构造函数或跳过时,我会得到与上面相同的错误。
以下是Satellite类实现的部分内容:
package tags;
import main.*;
import xml.*;
public class Satellite extends XMLElement {
public static final String[] ATTRIBUTES = {
"XmlFileVersion",
"SatelliteName",
"xmlns:xsi=@xmlns_xsi",
"xsi:noNamespaceSchemaLocation=@xsi_noNamespaceSchemaLocation"
};
public Satellite() {
super(ATTRIBUTES);
setTopLevelElement();
setAttribute("XmlFileVersion",ValueCenter.Satellite_XmlFileVersion());
setAttribute("SatelliteName",ValueCenter.Satellite_SatelliteName());
addElement(new SubSystemList());
}
}
我确定问题出现在这一行代码: addElement(new SubSystemList());
。我在这里添加了一个断点,然后尝试单步执行或跳过,但是现在我得到了一个ClassNotFoundException
。调试光标跳转到一个空窗口,显示“找不到源代码”,但源代码百分之百可用,我也有相应的.class文件。另外,Eclipse IDE没有在语法检查时报错。
我不明白这是为什么。是什么原因导致这些错误,为什么我不能使用调试器来逐步执行方法调用?
我已经更新了Java Devs的Eclipse Helios SR1并在我的PC上安装了最新的Java版本。
我知道代码中有一个无限循环,因为如果我不使用调试器运行它,会出现StackOverflowError
异常。但不管怎样,难道不能通过调试代码来调查实际问题吗?为什么调试器会出现其他错误或异常而非无调试器运行的结果?
顺便说一下:只有一个线程和顺序执行。
希望有人能帮忙解决。
编辑1:
一些额外的信息。我的工作区有两个项目。其中一个是主程序与卫星等的主要部分。另一个项目中有许多支持类,例如此XMLElement。这种结构适用于许多类。
顺便说一下:我可以跳转到XMLElement.setAttribute方法,但无法跳转到XMLElement.addElement。
另一个奇怪的事情是,卫星与主类位于同一项目中,但仍无法跳转到构造函数。
也许这能帮助解决问题?