Scala / sbt:如何在Eclipse中的断点处停止

时间:2015-03-14 11:42:40

标签: eclipse scala debugging sbt breakpoints

我正在尝试使用sbt运行测试时调试我的Scala应用程序。我已将以下行添加到build.sbt

javaOptions in test ++= Seq(
  "-Xdebug",
  "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
)

我还在Eclipse中设置了断点,并为该端口8001配置了一个远程调试器。

从命令行启动测试时,远程调试器正确启动:

Listening for transport dt_socket at address: 8001

但是,测试的执行没有像预期的那样暂停,因此我无法连接远程调试器。相反,测试只是运行。

任何想法我可能在这里做错了吗?如何在Eclipse中使用断点调试sbt测试?

1 个答案:

答案 0 :(得分:1)

以下对我有用(未在测试中测试,但可能以相同的方式工作)。在这个例子中,我使用了由udash-generator(0.3.1)生成的项目。

$ sbt
> set fork := true
> set javaOptions ++= Seq("-Xdebug",  "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001")
> run

我使用了eclipse(Neon with ScalaIDE 4.4.1,Scala 2.11)(sbt eclipse with-source=true)并在com.example.rpc.ExposedRpcInterfaces.hello(name: String)方法中添加了一个断点。

创建了一个运行配置: Scala debugger (Socket Attach), using Scala Remote Launcher

启动启动配置(eclipse调试器)并使用http://localhost:8080/#/rpc打开浏览器,开始键入文本字段,eclipse在断点处停止。

我不确定您的不同之处,因为您似乎也在为测试分配新的JVM。如果您提供了正在使用的测试框架的更多详细信息,我可以尝试您的设置。