【问题标题】:sbt & Play 2.0 Debugging Information Missingsbt & Play 2.0 调试信息缺失
【发布时间】:2012-09-04 21:11:24
【问题描述】:

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

有人知道如何配置 sbt 来添加调试信息吗?还是我的 Scala IDE Eclipse 插件问题或其他问题?

非常感谢!

【问题讨论】:

  • 您是否在开发模式下运行 Play?
  • 是的,我尝试将“application.mode=dev”放入我的application.conf,但它没有改变任何东西。我还有什么需要做的吗?
  • mm 用“play run”而不是“play start”或其他命令运行它
  • mhhh 我直接使用 sbt 运行它(“sbt run”),而不是使用游戏控制台。在播放控制台中,我可以使用“调试运行”,但直接使用 sbt 时不可用。
  • 恐怕我想不出解决办法:(

标签: scala playframework sbt


【解决方案1】:

要通过sbt 在调试模式下开始播放,请运行:

sbt -jvm-debug 9999 run

【讨论】:

  • 这对我不起作用:在 Kubuntu 上玩 2.0.4,SBT 启动器 0.12.1。错误消息:无效的 {command|project ID|configuration|key}: jvm-debug
  • 我在 Ubuntu 上并使用通过apt.typesafe.com deb repo 安装的sbt。当我运行sbt sbt-version 时,我得到0.11.3。你是怎么安装sbt的?
  • 我手动安装了它:scala-sbt.org/release/docs/Getting-Started/Setup.html#unix 使用 deb-Installation 它可以工作。如果您使用 .deb 文件安装 sbt,则会包含一个 shell 脚本 /usr/share/sbt/sbt-launch-lib.bash 来评估参数“-jvm-debug”。所以它不能用于手动安装的 sbt 启动器。这很可悲,因为您可以像 gradle 包装器一样轻松使用 sbt。
  • 我会调查一下,看看我们是否可以在这些之间取得一致性。
  • 我刚刚尝试使用 sbt 0.12.1(从 deb 安装)并且我的答案中的命令仍然有效。那么我们的设置有什么不同呢?
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    在 IntelliJ 中:

    转到“编辑运行配置”

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

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

    从命令行运行:

         sbt -jvm-debug 9999 run
    

    【讨论】:

      【解决方案4】:

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

      javacOptions ++= Seq("-g")
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-27
        • 2015-04-22
        • 1970-01-01
        • 2021-08-31
        • 1970-01-01
        相关资源
        最近更新 更多