4

我正在使用 sbt 来构建我的 Play 2.0 项目。我设法将 sbt 配置为打开一个调试端口,附加一个 Eclipse 远程调试器并输入一个断点。我把断点放在我的一个动作中。但是当执行在那里停止时,我无法检查任何变量。我猜 sbt 在没有调试信息的情况下构建了 Scala 代码。

有人知道如何配置 sbt 来添加调试信息吗?或者这可能是我的 Scala IDE Eclipse 插件或其他任何问题?

提前谢谢了!

4

4 回答 4

4

要通过 以调试模式开始播放sbt,请运行:

sbt -jvm-debug 9999 run
于 2012-10-15T23:08:14.963 回答
1

我发现这是最简单的解决方案:(使用 IntelliJ IDEA)

在 IntelliJ 中:

转到“编辑运行配置”

在此处输入图像描述

创建一个新的远程配置(端口 9999,所有其他细节保留默认值)

在此处输入图像描述

返回 IntelliJ 并运行新的调试配置(不要忘记设置断点)

从命令行运行:

     sbt -jvm-debug 9999 run
于 2014-03-05T10:40:28.200 回答
1

我没有找到解决所有调试问题的解决方案,但至少它可以工作,以便我可以使用它。这是我的状态:

我直接使用 sbt 并且不能使用 -jvm-debug 9999。但是我在 sbt 启动脚本的 JAVA_OPTS 中添加了以下内容: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9999 这可以连接 Eclipse 远程调试器并获取调试信息(如果在开发模式下运行 Play)。

仍然存在的问题是,当将鼠标光标指向变量时,我没有得到显示变量信息的弹出窗口。但这似乎是 Scala IDE 插件而不是 Play 的问题,因为我在调试透视图中的变量视图中获取了变量信息。

于 2012-12-22T20:03:16.420 回答
0

我在模块化 sbt 构建中遇到了同样的问题。添加

javacOptions ++= Seq("-g")

到 build.sbt 文件,解决了编译类中缺少调试信息的问题。

于 2015-10-21T16:41:58.093 回答