2

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

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

4

4 回答 4

1

使用脚本调试 REPL是 Ammonite 1.0.0 中提供的一项新功能。

于 2017-09-06T07:15:00.930 回答
0

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

但是我们失去了 Ammonite 脚本的设置简单性和修改脚本的便利性。

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

于 2017-04-13T10:00:51.003 回答
0

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

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

于 2017-08-24T07:23:54.483 回答
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 文件与其源之间的链接。

为 IDEA创建了一个问题。

于 2017-09-05T11:29:45.300 回答