Groovy调试器不同步

时间:2013-04-05 17:50:06

标签: eclipse debugging grails groovy sts-springsourcetoolsuite

我在尝试调试grails中的某些代码时遇到了困难。很难投入到文本中,因此我发布了一个截屏视频,准确显示了问题here。简而言之,在我调试时,调试器开始从一个地方跳到另一个地方,而不是遵循我所拥有的程序逻辑。我发现的唯一其他类似问题是一年之久,没有解决方案,可以找到here

我到目前为止最好的猜测是调试器显示我输入的文本,但实际上是在执行某个已缓存的类文件的旧版本。因此,我试过了:

  • 清理项目
  • 手动删除目标文件夹和target-eclipse文件夹中的所有类文件
  • 在我的整个硬盘中搜索名称相似的其他文件
  • 从工作区中删除我的项目并重新添加
  • 关闭并重新打开IDE
  • grails refresh-dependencies
  • 将项目导入新IDE(我使用的是GGTS,我切换到IntelliJ)

这些解决方案都没有任何效果。我意识到问题出在一个.groovy文件中,我写的几乎是纯Java,所以我删除了.groovy文件,并在.java文件中重新创建了该类。这解决了我的问题。不幸的是我再次遇到了这个问题,而这次是在一个严重依赖grails框架的控制器中,所以解决方案不是一个选择。除了也在.groovy文件中,另一个相似之处是代码在if语句中断开。

我的下一步:

  • 使用打印功能监视实际执行流程,验证应用程序是否未执行我看到的代码。
  • 注释掉整个功能,并一次重新添加一行功能,以查看是否可以看到是什么打破了它。
  • 删除.groovy文件,并将其重新创建为另一个.groovy文件。

感谢任何帮助,由于我无法在线找到任何答案,因此我将继续更新此问题。

1 个答案:

答案 0 :(得分:1)

查看我对jira issue that you raised的评论。您发现了groovy编译器的问题以及它如何计算行号。这不是执行错误的类文件或使用损坏的调试器的问题。调试器正在完成预期的工作。编译器提供错误的行号信息。

问题中描述的下一步是提供一个重新创建bug的简单项目。我试图自己这样做,但不能。所以,请提供我们可以使用的东西。然后我们可以通知groovy编译器团队。