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