Как отлаживать скрипт Ammonite?

Обычно мои сценарии просты и могут быть отлажены путем трассировки с отпечатками.

Но могу ли я использовать настоящий отладчик? Возможно, запуск JVM с включенной удаленной отладкой, но я не знаю, как это сделать.


person david.perez    schedule 30.03.2017    source источник


Ответы (4)


Используйте отладку сценария REPL, новую функцию, доступную в Ammonite 1.0.0.

person david.perez    schedule 06.09.2017

Преобразуйте скрипт Ammonite в небольшой проект SBT и импортируйте его в IDEA. Затем его можно отладить.

Но мы теряем простоту установки скрипта Ammonite и простоту изменения скрипта.

Кроме того, магический импорт, такой как import $ivy или import $file, должен быть переписан.

person david.perez    schedule 13.04.2017

Другой метод — включить удаленную отладку 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.

person david.perez    schedule 05.09.2017

Используйте jstack, чтобы узнать трассировку стека, когда скрипт где-то блокируется.

Это не настоящая отладка, но она помогает устранять неполадки в зависших скриптах.

person david.perez    schedule 24.08.2017