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

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

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

    我正在使用Java 1.8.0_111,Scala 2.12和SBT 0.13.15。

    最佳答案

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

    -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字段中使用。

    07-24 09:32