【发布时间】:2011-01-17 10:07:45
【问题描述】:
我正在为 Java 运行 Eclipse。我创建了一个 XML 文件的 DOM 版本。现在我想更改文件中元素的属性。我调用了一个方法,该方法调用了控制 DOM 的类中的方法,并且在调试时出现了一个对话框,提示“JDI 线程评估遇到问题。异常处理异步线程队列”。
我是 Java 的相对新手,没有遇到过这样的错误,我不知道是什么原因造成的。
如果有人对问题的原因和/或解决方法有任何建议......
非常感谢!
【问题讨论】:
我正在为 Java 运行 Eclipse。我创建了一个 XML 文件的 DOM 版本。现在我想更改文件中元素的属性。我调用了一个方法,该方法调用了控制 DOM 的类中的方法,并且在调试时出现了一个对话框,提示“JDI 线程评估遇到问题。异常处理异步线程队列”。
我是 Java 的相对新手,没有遇到过这样的错误,我不知道是什么原因造成的。
如果有人对问题的原因和/或解决方法有任何建议......
非常感谢!
【问题讨论】:
留意您的“观看”表达 - 如果您不需要它们,请将它们全部删除。有时某些手表表达式会导致我出现此错误消息。
这也可以解释为什么人们会间歇性地发生这种情况(有时他们的手表分配会导致错误,但重新启动或移除正确的手表可以在他们不知情的情况下解决问题。)
【讨论】:
Java 调试接口 (JDI) 是 Java Platform Debugger Architecture 的一部分。当对象的toString() 方法不小心返回null 时,就会出现触发此异常的一种明显方式。您可能想尝试不同的调试器,并且验证您的 XML 不会有什么坏处。如 cmets 中所述,该问题可能会间歇性出现,表明存在线程同步问题。
【讨论】:
null 到一个线程而不是另一个线程。
在您调试时,此错误会安静地发生几次。 您可以通过删除所有监视语句和所有断点并重新启动 Eclipse 来清除它。
【讨论】:
如果源查找配置不正确,也会出现此问题。例如,假设一个人想观看表达式foo.bar()。现在,如果源查找配置不正确,调试器将无法解析表达式foo 的绑定(请参阅this eclipse bug)。然后.bar() 的调用将失败并返回 NullPointerException。
【讨论】:
如果您为特定类配置了“详细格式化程序”(在 Eclipse 中:Java -> 调试 -> 详细格式化程序),则可能会出现此问题。尝试禁用它们。
【讨论】:
当我在调试表达式时,这在 Eclipse 中被复制:"",它只是一个空表达式。
因此,如果您遇到此问题,一种解决方案可能是检查您的某个表达式是否为空或类似,然后适当地删除它。
【讨论】: