3

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

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

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

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

我的下一步:

  • 通过使用打印函数来监控实际执行流程,验证应用程序没有执行我看到的代码。
  • 注释掉整个函数并一次重新添加一行功能,看看我是否能看到是什么破坏了它。
  • 删除 .groovy 文件,然后将其重新创建为另一个 .groovy 文件。

感谢您提供任何帮助,由于我在网上找不到任何答案,我将在了解更多信息时继续更新此问题。

4

1 回答 1

1

请参阅我对您提出的 jira 问题的评论。您发现 groovy 编译器及其计算行号的方式存在问题。这不是执行错误的类文件或使用损坏的调试器的问题。调试器正在做它预期做的事情。是编译器提供了错误的行号信息。

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

于 2013-04-22T21:43:44.113 回答