Scala 如何调试Ammonite脚本?

Scala 如何调试Ammonite脚本?,scala,debugging,ammonite,Scala,Debugging,Ammonite,通常我的脚本很简单,可以通过打印跟踪进行调试 但是我可以使用真正的调试器吗? 可能在启用远程调试的情况下启动JVM,但我不知道如何执行。将Ammonite脚本重新转换为一个小型SBT项目,并在IDEA中导入它。然后就可以调试了 但我们失去了Ammonite脚本的设置简单性和修改脚本的容易性 此外,像import$ivy或import$file这样的魔法导入必须重写。当脚本锁定在某个位置时,使用jstack了解堆栈跟踪 这不是真正的调试,但有助于解决热挂起脚本的问题。另一种技术是启用Java远程调

通常我的脚本很简单,可以通过打印跟踪进行调试

但是我可以使用真正的调试器吗?
可能在启用远程调试的情况下启动JVM,但我不知道如何执行。

将Ammonite脚本重新转换为一个小型SBT项目,并在IDEA中导入它。然后就可以调试了

但我们失去了Ammonite脚本的设置简单性和修改脚本的容易性


此外,像
import$ivy
import$file
这样的魔法导入必须重写。

当脚本锁定在某个位置时,使用
jstack
了解堆栈跟踪


这不是真正的调试,但有助于解决热挂起脚本的问题。

另一种技术是启用Java远程调试:

JAVA_OPTS='-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=20614,suspend=y' myscript.sc
然后在IDEA、Eclipse或Netbeans中,在同一端口中创建远程调试配置。在我的例子中是20614

使用IDEA进行了尝试,调试器连接到运行脚本的JVM,但未命中断点:-(

IDE不知道.class文件与其源文件之间的链接

创建了。

使用Ammonite 1.0.0中提供的新功能