Как включить отладку сообщений в Juno (редактор Julia) - PullRequest
0 голосов
/ 30 ноября 2018

Документы Julia достаточно ясно показывают, как включить отладку сообщений из макросов @debug, т.е. запустить export JULIA_DEBUG=mymodule или export JULIA_DEBUG=all в командной строке перед запуском Julia.Тем не менее, есть ли простой способ включить отладку из Juno, или, в более общем случае, во время работы Julia?

Я безуспешно пытался поиграться с Base.CoreLogging.disable_logging, Base.CoreLogging.BelowMinLevel и Base.CoreLogging._min_enabled_level.

Я знаю, что могу установить переменные env для Julia в настройках Juno.Но работать с этим немного раздражает, так как требует перезагрузки Джулии.Я действительно хочу иметь следующий рабочий процесс при работе в интерактивном режиме:

  1. Введите строку в REPL
  2. Наткнуться на ошибку из вашего собственного кода, которую вы не ожидали.
  3. Включить отладку.
  4. Запустить эту строку еще раз.
  5. Смотреть журналы отладки.
  6. Исправить код.
  7. Отключить ведение журнала отладки еще раз.

Что, мне кажется, приятнее, чем обычная практика комментирования и отмены комментариев printf везде.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Чтобы включить ведение журнала сообщений @debug в вашем скрипте julia:

# ... script ...

ENV["JULIA_DEBUG"]="all"

# debug messages are now enabled.
# ... Rest of the script... 

Добавление ENV["JULIA_DEBUG"]="all" включит сообщения @debug при запуске скрипта в Juno или при запуске его с помощью Julia из вашего терминала..

0 голосов
/ 30 ноября 2018

Включить @debug везде (это повлияет только на код, загруженный после выполнения следующего выражения):

julia>ENV["JULIA_DEBUG"] = "all"

Включить @debug в файле foo.jl (в соответствии с документами, не проверял это):

julia>ENV["JULIA_DEBUG"] = "foo"

Отключить @debug:

ENV["JULIA_DEBUG"] = ""

важное примечание : макросы оцениваются при загрузке кода.Таким образом, описанные выше уловки будут влиять только на код, который загружается после изменения значения JULIA_DEBUG.Поэтому после установки, например, all, ничего не изменится.Перезагрузите модули, которые вы хотите @debug.

...