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