【发布时间】:2013-06-22 16:36:04
【问题描述】:
对于一个研究项目,我正在使用 Eclipse 在 OpenJDK 源代码上进行开发。出于调试目的,集成调试器的“表达式”和“显示”视图非常有用。单步执行 javac 编译器工具的代码时,表达式视图在 some 类上失败。然后,即使是最简单的表达式也会在其值列中获得<error(s)_during_the_evaluation>。
那么详细的错误信息是:
Evaluations must contain either an expression or a block of well-formed statements
我很确定,我输入了有效的表达式,因为简单地切换到调用方法(高一个堆栈帧)会使视图正常工作。
我上传了两张截图,让问题更清楚:
非工人阶级JavacParser:
工薪阶层EndPosParser:
有没有人遇到过类似的问题或知道原因是什么或如何解决?在显示的两个视图之间切换时,除了将堆栈帧高出一个堆栈帧外,我什么也不做。预计这两种表达式都将在两种情况下进行评估。据我评估,显示的失败行为仅发生在 JavacParser 类中。
谢谢!
【问题讨论】:
-
我遇到了很多针对此错误的旧报告和错误修复,但它们似乎都与旧问题有关(即:具有泛型的类,版本 3.1-3.8),我现在在 4.x+ 上,仍然看到这个。希望有人能找到解释,以便举报。
-
我已经设法通过覆盖 toString() 方法来解决这个问题。可能想试一试。不过,这是实现这一目标的一种非常老套的方式。如果我想出更好的解决方案,我稍后会更新。
标签: java eclipse debugging openjdk