sbt&播放2.0调试信息丢失

时间:2012-09-04 21:11:24

标签: scala playframework sbt

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

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

非常感谢提前!

4 个答案:

答案 0 :(得分:4)

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

sbt -jvm-debug 9999 run

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

IntelliJ中的

转到“编辑运行配置”

enter image description here

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

enter image description here

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

从命令行运行:

     sbt -jvm-debug 9999 run

答案 3 :(得分:0)

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

javacOptions ++= Seq("-g")

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