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 enthält einen integrierten Debugger. Du kannst aber auch die kostenlose Open-Source-Lua-IDE ZeroBrane Studio als externen Debugger verwenden. ZeroBrane Studio muss installiert sein, damit du die Debugging-Funktionen nutzen kannst. Das Programm ist plattformübergreifend und läuft sowohl unter macOS als auch unter Windows.
Lade „ZeroBrane Studio“ von http://studio.zerobrane.com herunter
Damit ZeroBrane die Dateien in deinem Projekt findet, musst du den Pfad zu deinem Defold-Projektverzeichnis angeben. Du kannst diesen Pfad bequem ermitteln, indem du bei einer Datei im Stammverzeichnis deines Defold-Projekts die Option Show in Desktop verwendest.

Um ZeroBrane einzurichten, wähle Project ▸ Project Directory ▸ Choose...:

Sobald du hier das Verzeichnis deines aktuellen Defold-Projekts eingestellt hast, solltest du den Verzeichnisbaum des Defold-Projekts in ZeroBrane sehen sowie darin navigieren und Dateien öffnen können.
Weitere empfohlene, aber nicht erforderliche Konfigurationsänderungen findest du weiter unten in diesem Dokument.
Bevor du eine Debugging-Sitzung beginnst, musst du den in ZeroBrane integrierten Debugging-Server starten. Den Menüeintrag dafür findest du im Menü Project. Wähle Project ▸ Start Debugger Server:

Du kannst das Debugging jederzeit während der Ausführung der Defold-Anwendung starten, musst es aber ausdrücklich aus einem Lua-Skript heraus einleiten. Der Lua-Code zum Starten einer Debugging-Sitzung sieht so aus:
Wenn sich dein Spiel beim Aufruf von dbg.start() beendet, kann das daran liegen, dass ZeroBrane ein Problem erkannt hat und den Befehl zum Beenden an das Spiel sendet. Aus irgendeinem Grund muss in ZeroBrane eine Datei geöffnet sein, damit die Debugging-Sitzung gestartet werden kann. Andernfalls gibt ZeroBrane Folgendes aus:
“Can’t start debugging without an opened file or with the current file not being saved ‘untitled.lua’).”
Öffne in ZeroBrane die Datei, in die du dbg.start() eingefügt hast, um diesen Fehler zu beheben.
dbg = require "builtins.scripts.mobdebug"
dbg.start()
Wenn du den obigen Code in die Anwendung einfügst, verbindet sie sich mit dem Debugging-Server von ZeroBrane (standardmäßig über “localhost”) und hält bei der nächsten auszuführenden Anweisung an.
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'.
Jetzt kannst du die Debugging-Funktionen von ZeroBrane nutzen: Du kannst den Code schrittweise ausführen, Werte untersuchen, Haltepunkte hinzufügen und entfernen usw.
Das Debugging wird nur für den Lua-Kontext aktiviert, aus dem es gestartet wird. Wenn du “shared_state” in game.project aktivierst, kannst du deine gesamte Anwendung debuggen, unabhängig davon, wo du das Debugging gestartet hast.

Falls der Verbindungsversuch fehlschlägt (möglicherweise weil der Debugging-Server nicht läuft), läuft deine Anwendung nach dem Verbindungsversuch wie gewohnt weiter.
Da das Debugging über gewöhnliche Netzwerkverbindungen (TCP) erfolgt, kannst du auch aus der Ferne debuggen. So kannst du deine Anwendung debuggen, während sie auf einem Mobilgerät läuft.
Du musst dazu nur den Befehl ändern, der das Debugging startet. Standardmäßig versucht start(), eine Verbindung zu localhost herzustellen. Für das Remote-Debugging musst du jedoch die Adresse des Debugging-Servers von ZeroBrane manuell angeben, etwa so:
dbg = require "builtins.scripts.mobdebug"
dbg.start("192.168.5.101")
Deshalb musst du sicherstellen, dass vom entfernten Gerät aus eine Netzwerkverbindung möglich ist und alle Firewalls oder ähnliche Programme TCP-Verbindungen über Port 8172 zulassen. Andernfalls kann die Anwendung beim Start hängen bleiben, wenn sie versucht, eine Verbindung zu deinem Debugging-Server herzustellen.
Du kannst ZeroBrane so einstellen, dass es während des Debuggings Lua-Skriptdateien automatisch öffnet. Dadurch kannst du in Funktionen in anderen Quelldateien einsteigen, ohne diese Dateien manuell öffnen zu müssen.
Öffne zunächst die Konfigurationsdatei des Editors. Es wird empfohlen, die benutzerspezifische Version dieser Datei zu ändern.
Füge Folgendes zur Konfigurationsdatei hinzu:
- to automatically open files requested during debugging
editor.autoactivate = true
