This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold містить вбудований налагоджувач, але як зовнішній налагоджувач також можна використовувати безкоштовне середовище розробки Lua з відкритим вихідним кодом ZeroBrane Studio. Щоб користуватися функціями налагодження, потрібно встановити ZeroBrane Studio. Програма є кросплатформною та працює як на macOS, так і на Windows.
Завантажте «ZeroBrane Studio» з http://studio.zerobrane.com
Щоб ZeroBrane міг знаходити файли вашого проєкту, потрібно вказати шлях до каталогу проєкту Defold. Зручний спосіб дізнатися цей шлях — скористатися пунктом Show in Desktop для файлу в корені проєкту Defold.

Щоб налаштувати ZeroBrane, виберіть Project ▸ Project Directory ▸ Choose...:

Коли ви вкажете каталог поточного проєкту Defold, у ZeroBrane має з’явитися дерево каталогів проєкту Defold, у якому можна переходити між каталогами та відкривати файли.
Інші рекомендовані, але необов’язкові зміни конфігурації наведено далі в цьому документі.
Перш ніж почати сеанс налагодження, потрібно запустити вбудований сервер налагодження ZeroBrane. Відповідний пункт розташований у меню Project. Просто виберіть Project ▸ Start Debugger Server:

Налагодження можна розпочати будь-коли протягом роботи застосунку Defold, але його потрібно явно ініціювати зі скрипту Lua. Код Lua для початку сеансу налагодження має такий вигляд:
Якщо гра завершує роботу під час виклику dbg.start(), можливо, ZeroBrane виявив проблему й надсилає грі команду завершення роботи. З якоїсь причини ZeroBrane потребує відкритого файлу для початку сеансу налагодження, інакше він виведе:
“Can’t start debugging without an opened file or with the current file not being saved ‘untitled.lua’).”
Щоб виправити цю помилку, відкрийте в ZeroBrane файл, до якого ви додали dbg.start().
dbg = require "builtins.scripts.mobdebug"
dbg.start()
Після вставлення наведеного вище коду застосунок підключиться до сервера налагодження ZeroBrane (типово через “localhost”) і призупинить виконання перед наступною інструкцією.
Debugger server started at localhost:8172.
Mapped remote request for '/' to '/Users/my_user/Documents/Projects/Defold_project/'.
Debugging session started in '/Users/my_user/Documents/Projects/Defold_project'.
Тепер можна користуватися функціями налагодження ZeroBrane: виконувати код покроково, інспектувати його, додавати й видаляти точки зупину тощо.
Налагодження буде ввімкнено лише для того контексту Lua, з якого його ініційовано. Якщо ввімкнути “shared_state” у game.project, можна налагоджувати весь застосунок незалежно від того, звідки ви почали.

Якщо спроба підключення не вдасться (наприклад, через те, що сервер налагодження не запущено), після цієї спроби застосунок продовжить працювати у звичайному режимі.
Оскільки налагодження відбувається через звичайні мережеві з’єднання (TCP), його можна виконувати віддалено. Це означає, що ви можете налагоджувати застосунок, коли він працює на мобільному пристрої.
Змінити потрібно лише команду, що запускає налагодження. Типово start() намагається підключитися до localhost, але для віддаленого налагодження потрібно вручну вказати адресу сервера налагодження ZeroBrane, як показано нижче:
dbg = require "builtins.scripts.mobdebug"
dbg.start("192.168.5.101")
Також важливо переконатися, що віддалений пристрій має мережеве з’єднання із сервером, а всі брандмауери чи подібне програмне забезпечення пропускають TCP-з’єднання через порт 8172. Інакше застосунок може зависнути під час запуску, намагаючись підключитися до сервера налагодження.
ZeroBrane можна налаштувати так, щоб він автоматично відкривав файли скриптів Lua під час налагодження. Це дає змогу під час покрокового виконання заходити у функції в інших вихідних файлах без потреби відкривати їх вручну.
Спершу потрібно відкрити файл конфігурації редактора. Рекомендовано змінювати користувацьку версію цього файлу.
Додайте до файлу конфігурації:
- to automatically open files requested during debugging
editor.autoactivate = true
