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

2022-09-04 03:57:36

我正在尝试Scala Web框架Scalatra。根据此处的文档,启用 IntelliJ 调试的步骤如下:

  1. 添加用于远程调试的常用 JDK 选项:"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
  2. 在 Intellij 中创建“远程”运行配置
  3. 启动 、运行 ,然后启动远程调试器sbtjetty: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
  }
}

代码不会在该行停止,而是继续,因此我得到了响应。DONE

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


答案 1

这是我用于远程调试的内容:

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

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


答案 2

啊,终于,经过大搏斗!我为我找到了!

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

 fork in Test := false,

这是完全有意义的,因为它只是第一个可以附加到IDE的JVM。

我希望它能帮助别人!