Отладка
Визуальный отладчик работает и на реальном железе: можно остановить скетч на любом операторе прямо во время его выполнения на плате, увидеть, на какой именно иконке произошла остановка, и посмотреть переменные, доступные в этой точке — тот же отладчик, что используется в workflow-продукте, только общается с платой через тот же USB-serial порт, через который был загружен скетч.
Точки останова
Заголовок раздела «Точки останова»Кликните правой кнопкой по любому оператору (действие, лог, цикл, вызов другой функции, …) и выберите Поставить точку останова. У края иконки появится полый красный кружок.
Точки останова сохраняются рядом с проектом (файл
.falang-debug.jsonрядом сproject.json) — это персональная настройка разработчика, а не часть самого скетча, так что в сгенерированный файл.inoони не попадают.Точку останова можно переключить в любой момент, в том числе пока отладчик уже подключён к плате: кружок становится сплошным, как только прошивка его подхватывает.
Запуск сессии
Заголовок раздела «Запуск сессии»Откройте Build & Upload, выберите плату и порт и нажмите Upload (debug) вместо обычной кнопки Upload. Это соберёт отладочную сборку (с включённой трассировкой), загрузит её и подключится к плате — если точек останова ещё нет, сессия сразу останавливается на самом первом отслеживаемом операторе, иначе выполнение идёт до первой точки останова, на которую наткнётся.
Обычная (не отладочная) загрузка по-прежнему доступна — отладочные сборки строго опциональны, и лишняя инструментация полностью пропускается, если вы не выбрали именно Upload (debug).
Пока выполнение на паузе
Заголовок раздела «Пока выполнение на паузе»Иконка, на которой остановилось выполнение, подсвечивается на холсте, а вид панорамируется к ней, если она за пределами экрана.
Боковая панель показывает переменные, доступные в этой точке, которые отладчик умеет показывать — обычные числа и булевы значения. Массивы, структуры и строки пока не передаются по проводу (см. «Что важно знать» ниже).
Продолжить — выполнение идёт до следующей точки останова.
Шаг с обходом — выполнение идёт до следующего оператора на той же глубине вызова: остановки внутри функции, вызванной с текущей строки, не будет, только после того как она вернёт управление.
Остановить — завершает сессию полностью.
Что важно знать
Заголовок раздела «Что важно знать»Сегодня в качестве переменных можно показать только обычные числа и булевы значения — у прошивки пока нет способа передать массив, структуру или строку по serial-каналу. Остальная часть отладчика (точки останова, пауза, шаги) при этом работает как обычно.
Подключение отладчика перезагружает плату — это нормально (открытие serial-порта делает это на большинстве плат Arduino) и как раз то, что гарантирует: точки останова, поставленные до подключения, никогда не будут пропущены, даже внутри
setup.Отладочная сборка занимает больше флеш-памяти — один вызов трассировки на оператор плюс один вызов на каждую отслеживаемую переменную. На маленькой плате (32 КБ у Uno) большой скетч может не поместиться в отладочном режиме, даже если помещается в обычном — при загрузке об этом сообщат.
Пока отладчик подключён, serial-порт платы занят им — собственное использование
Serialскетчем для чего-то ещё в это время не видно.
История версий
Заголовок раздела «История версий»У каждого проекта есть история версий, никак не связанная с отладчиком, — кнопка «История» над вкладками (и пункт меню Sketch > Version History) открывает панель со списком всех сохранённых версий, от новых к старым. Приложение автоматически сохраняет новую версию, когда вы возвращаетесь к скетчу после перерыва (настраивается в Settings > Versioning…, по умолчанию — три часа) — она фиксирует скетч ровно таким, каким вы его оставили, до того как вступит в силу следующее изменение, а не по таймеру во время активного редактирования. Текущую версию в любой момент можно назвать, чтобы отметить её как настоящую контрольную точку — автосохранённые версии по умолчанию скрыты за переключателем «Показывать автосохранённые версии», чтобы список оставался читаемым.
Сравнить открывает две версии рядом — добавленные, удалённые и изменённые иконки подсвечиваются прямо на холсте, а для выбранной иконки показывается список изменившихся полей.
Восстановить заменяет проект содержимым более старой версии и сохраняет новую версию, так что само восстановление можно отменить.
История версий хранится в настоящем git-репозитории (расположение репозитория и автор коммитов настраиваются в Settings > Versioning…) — по умолчанию это отдельный репозиторий, который создаётся внутри папки проекта при первом сохранении.