IntelliJ远程调试器连接,但断点不起作用

Joa*_*uza 8 java debugging intellij-idea sbt scalatra

我正在尝试Scala Web框架Scalatra.根据这里的文档,启用IntelliJ调试的步骤是:

  1. 添加常用的JDK选项进行远程调试: "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
  2. 在Intellij中创建"远程"运行配置
  3. 启动sbt,运行jetty:start,然后启动远程调试器

当我这样做时,SBT打印出来:

Listening for transport dt_socket at address: 5005

和IntelliJ打印:

Connected to the target VM, address: 'localhost:5005', transport: 'socket'

但是,断点似乎不起作用.当我点击以下端点时,断点位于*:

class AppServlet extends AppStack {
  get("/break-test") {
*   val response = "DONE"
    response
  }
}
Run Code Online (Sandbox Code Playgroud)

代码不会在该行停止,但会继续,以便我得到响应DONE.

我使用的是Java 1.8.0_111,Scala 2.12和SBT 0.13.15.

bru*_*nde 5

这是我用于远程调试的:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,addres??s=5005。

您在上面的答案中使用的值-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005, 用于该For JDK 1.4.x字段。


tde*_*roc 5

终于啊,经过一番艰苦奋斗!我为我找到了!

我需要在 build.sbt 中禁用分叉

 fork in Test := false,
Run Code Online (Sandbox Code Playgroud)

这是完全有道理的,因为它只是第一个连接到 IDE 的 JVM。

我希望它能帮助别人!