当我尝试在调试器中启动我的代码时出现以下错误。
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
. 调试光标跳到“找不到源”的空窗口。已编写,但源代码 100% 可用,并且我还获得了相应的 .class 文件。另一件事是 Eclipse IDE 在语法检查时不会抛出任何错误。
我不明白这一点。什么会导致这些错误,为什么我不能使用调试器来遍历方法调用?
我已经为 Java Devs 更新了 Eclipse Helios SR1,并在我的电脑上安装了最新的 Java 版本。
我知道代码在这里的任何地方都有一个无限循环,因为StackOverflowError
如果我在没有调试器的情况下运行它,我会得到一个异常。但是无论如何,不应该可以通过代码进行调试,以调查真正的问题吗?为什么调试器与非调试器运行相比会因其他错误或异常而崩溃?
顺便说一句:只有一个线程和顺序执行。
希望有人可以提供帮助。
编辑1:
一些额外的信息。我的工作区有两个项目。其中之一是卫星和其他主程序。在另一个项目中,我有许多支持类,例如 XMLElement。这种结构适用于许多类。
顺便说一句:我可以进入 XMLElement.setAttribute 方法,但不能进入 XMLElement.addElement。
另一个奇怪的是,Satellite 与主类在同一个项目中,但也无法进入构造函数。
也许这有帮助?