【问题标题】:Debugger source line synchronization not working in IntelliJ IDEA Scala plugin调试器源代码行同步在 IntelliJ IDEA Scala 插件中不起作用
【发布时间】:2013-05-24 02:39:44
【问题描述】:

我在 Windows 8 上使用 Scala 插件 0.7.264 运行 IntelliJ IDEA 12.1.3。 Scala 安装在C:\Apps\Scala\scala-2.10.1 中,该目录位于我的 PATH 中。 Scala 文档位于C:\Apps\Scala\scala-2.10.1\doc\scala-devel-docs\api。这些是从 .zip 文件手动安装。

一切似乎都很好,除了两件事:

首先,如果启用了“运行编译服务器(在外部构建模式下)”设置(默认情况下),我会收到此错误:

暂时关闭该设置可解决此问题,但还有另一个问题。我可以在调试器中运行我的代码,并在我单步执行代码时查看调试器面板中的值更改,但它不会在我单步执行时同步源文件视图。

通常我希望看到正在执行的当前行变成绿色,当我按下 F10 或 F11 时,绿色高亮会随之而来,但事实并非如此。我可以在源代码行上设置断点并让它运行,它会按预期在每个断点处停止。它只是没有在到达那里时以绿色突出显示源代码行。

类似地,如果源文件(我的源代码或库文件)未打开,而我单步执行该代码,它会显示为正确单步执行,但根本不会打开源文件。

其他一切正常,例如自动完成和 Shift+F1 以查看光标所在名称的 Scala 文档。

真正奇怪的是我进行了短暂的全面调试。起初我从.msi 文件安装了Scala,所以它将Scala 安装到C:\Program Files (x86)\scala。当我设置 IntelliJ 以使用该 Scala 安装时,当我逐步执行代码时,我确实在源代码行上获得了绿色突出显示。

该设置的唯一问题是,当我设置 Scala 项目时,IntelliJ 抱怨缺少 doc\scala-devel-docs\api 目录,因为 .msi 安装使用 API 文档的不同子目录。在 Global Liraries 设置中手动修复它很容易,但我想我会尝试 .zip 安装,这样我就可以使用更像 IntelliJ 所期望的目录布局。

我应该一个人离开就够了!我什至尝试回到那个安排,但仍然没有让源代码行同步再次工作。

在某一时刻,我还尝试让 IntelliJ 进行 Scala 安装,但这也产生了相同的结果:除了调试器中的源代码行同步之外,一切正常。

一定有什么明显的地方我弄错了,但我不确定它可能是什么。有人有什么想法吗?

这是调试会话的屏幕截图:

程序在第 3 行停止,如分配给 xy 但尚未分配给 z 的值以及“框架”面板中的 <init>():3, Main$$anon$1 所示。所以第 3 行应该以绿色突出显示,但不是。

以下是相关设置对话框:

以上是在“运行编译服务器”的情况下;如前所述,我最终关闭了该设置。字段值为默认值,包括-server -Xss1m -XX:MaxPermSize=256m JVM 参数。

【问题讨论】:

  • 是的,它不能正常工作。

标签: scala intellij-idea


【解决方案1】:

我使用相同版本的 IDEA 和 Scala 插件(但在 OS X 和 JDK 6 上),我没有这个问题。这种情况发生在您的任何项目中还是仅在特定项目中发生?


假设操作系统不应该负责,不同的是我使用 sbt 来构建我的项目。因此,如果您愿意设置build.sbt 并为 IDEA 安装 SBT 插件,这可能值得一试。

虽然花哨的新编译服务器理论上应该和 sbt 一样快速和流畅,但我发现使用 sbt 插件非常愉快。您可以从设置 -> IDE 设置 -> 插件安装它。下一步我也强烈推荐使用sbt-idea 插件,它就像是对 IDEA SBT 插件的补充——这将允许你从 sbt 生成完整的 IDEA 项目文件(你可以只有一个 @987654324 @entry in build.sbt 如果你不需要管理依赖,那么你一开始就不需要学习太多 sbt)。

最后一步是进入您的运行/调试配置,并将“启动前”部分中的“制作”更改为“SBT”。


最后,您可能会通过JetBrains online forum 为您的问题提供更好的支持。

【讨论】:

  • 谢谢!这些都是很棒的提示。所有项目都会发生同样的事情。我将在 OSX 和 Linux 上尝试一下,看看我是否有更好的运气。 SBT 听起来非常强大,尽管在这个阶段我只是在尝试使用该语言并试图保持环境简单。不过会试一试,看看是否有什么不同。我也会在 JetBrains 论坛上发布一条注释,可能一开始就应该想到这一点。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 2023-03-09
  • 1970-01-01
  • 2016-02-16
  • 2016-12-06
  • 1970-01-01
相关资源
最近更新 更多