Обычно мои сценарии просты и могут быть отлажены путем трассировки с отпечатками.
Но могу ли я использовать настоящий отладчик? Возможно, запуск JVM с включенной удаленной отладкой, но я не знаю, как это сделать.
Обычно мои сценарии просты и могут быть отлажены путем трассировки с отпечатками.
Но могу ли я использовать настоящий отладчик? Возможно, запуск JVM с включенной удаленной отладкой, но я не знаю, как это сделать.
Используйте отладку сценария REPL, новую функцию, доступную в Ammonite 1.0.0.
Преобразуйте скрипт Ammonite в небольшой проект SBT и импортируйте его в IDEA. Затем его можно отладить.
Но мы теряем простоту установки скрипта Ammonite и простоту изменения скрипта.
Кроме того, магический импорт, такой как import $ivy
или import $file
, должен быть переписан.
Другой метод — включить удаленную отладку 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.
Используйте jstack
, чтобы узнать трассировку стека, когда скрипт где-то блокируется.
Это не настоящая отладка, но она помогает устранять неполадки в зависших скриптах.