Отладка скрипта Julia с помощью Juno IDE

Я новичок в Julia, версия 1.39.1, и пытаюсь отладить игрушечный пример функции с помощью Juno IDE (Atom). Мне удалось получить работающий пример из этой документации, но я не мог понять, как чтобы запустить отладчик моего скрипта Julia или моей функции. Этот сайт казался многообещающим, но изображение примера не работает. Связанный вопрос.

Я безуспешно пытался использовать [email protected](outer_prod([1,2,3],[1,1,1])).

Как я могу использовать отладчик в моем скрипте или в своей функции?

введите здесь описание изображения

Какую версию Юлии и Юноны вы используете? В Juno меню должна быть запись Debug Information, которая должна содержать всю необходимую информацию. FWIW, ваш точный пример (ввод отладчика с [email protected] правильный) отлично подходит для меня.   —  person pproctor    schedule 13.01.2020

Юлия (1.39.1), Юнона (1.2.0-1). Когда вхожу в REPL [email protected](outer_prod([1, 2, 3],[1, 1, 1])) ERROR: UndefVarError: outer_prod not defined.   —  person pproctor    schedule 14.01.2020

Хорошо, теперь он работает, я поставил [email protected](outer_prod(x,y)) в конце моего сценария Джулии. Раньше я пытался ввести эту команду в REPL. Я опубликую то, что я сделал, в качестве ответа, и вы можете сообщить мне, правильный ли это способ использования отладчика.   —  person pproctor    schedule 14.01.2020

[email protected] не следует использовать в скриптах. Я подозреваю, что ваш код находится в модуле, но REPL не установлен для этого модуля. Поэтому либо правильно квалифицируйте outer_prod (например, [email protected](MyModule.outer_prod(x,y)), либо установите REPL на правильный модуль (в правом нижнем углу есть индикатор).   —  person pproctor    schedule 14.01.2020

Хорошо, ваше предложение правильно квалифицировать модуль работал, спасибо. Я думал, что отладчик может работать аналогично Matlab, но похоже, что отлаживать можно только функции.   —  person pproctor    schedule 15.01.2020

См. также:  Как мне изменить индекс цикла в julia?

Да, но вы можете просто выполнять сценарии верхнего уровня с помощью Ctrl-Enter, поэтому отладчик здесь не так уж и нужен.   —  person pproctor    schedule 15.01.2020

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. pproctor

    Если вы хотите научиться отладке в Juno, начните с чего-нибудь простого.

    function foo(x,y)
        z = x + y
        return z
    end
    

    Шаг 1. Очень важно! Сохраните файл в Juno

    шаг 2. нажмите кнопку «стоп», чтобы остановить существующий процесс Julia

    шаг 3. нажмите кнопку «play», чтобы запустить файл

    шаг 4. введите это в REPL

    [email protected] foo(2,3)
    

    шаг 5. Используйте панель отладчика в Juno

    Нет необходимости останавливать и перезапускать текущий процесс Julia. person pproctor; 13.01.2020

  2. pproctor

    @enter — это не функция, а макрос. Просто удалите скобки после него и добавьте пробел: @enter foo() вместо @enter(foo()). Затем в отладчике вы можете получить справку о том, что делать, набрав help.

    Вызов макросов со скобками полностью допустим: Meta.parse("@foo(2)") == Meta.parse("@foo 2") истинно. В некоторых случаях это также очень полезно, потому что вызовы макросов без скобок очень чувствительны к пробелам. person pproctor; 13.01.2020

  3. pproctor

    Как предлагает @pfitzseb в комментариях к вопросу, вы должны квалифицировать свою функцию с ее модулем (в основном скриптом, в котором находится функция), чтобы начать отладку с REPL. Текущий рабочий модуль можно найти в правом нижнем углу Juno IDE. Команда для отладки функции в конкретном модуле: [email;protected](MyModule.func_name(args))

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: