如何调试Ammonite脚本?

时间:2017-03-30 15:15:36

标签: scala debugging ammonite

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

但我可以使用真正的调试器吗? 也许启动远程调试启动JVM,但我不知道该怎么做。

4 个答案:

答案 0 :(得分:1)

使用Ammonite 1.0.0中提供的Script debug REPL新功能。

答案 1 :(得分:0)

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

但是我们失去了Ammonite脚本的设置简单性,以及修改脚本的简易性。

此外,必须重写import $ivyimport $file等魔术导入。

答案 2 :(得分:0)

当脚本在某处锁定时,使用jstack来了解堆栈跟踪。

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

答案 3 :(得分:0)

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

JAVA_OPTS='-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=20614,suspend=y' myscript.sc

然后在IDEA,Eclipse或Netbeans中,在同一端口中创建远程调试配置。在我的例子中是20614。

尝试使用IDEA,调试器附加到运行脚本的JVM,但没有命中断点。 : - (

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

创建了issue for IDEA