Studio bietet viele Debugging-Tools und Workflows, die in integrierten Entwicklungsumgebungen (IDEs) häufig zu finden sind. Diese helfen Ihnen, Fehler in Skripten zu inspizieren und zu beheben, während sie ausgeführt werden.
Haltepunkt-Debugging
Haltepunkte sind Kontrollpunkte, die die Ausführung Ihrer Skripte an bestimmten Zeilen anhalten oder "brechen". Sie können die Pausen nutzen, um Ihr Spiel zu inspizieren und zu debuggen, Variablen zu überwachen und den Aufrufstapel zu inspizieren. Haltepunkte sind eine der effektivsten Methoden, um Funktionen zu debuggen, daher sind sie eines der wichtigsten Debugging-Tools.
Verwaltung
Im Skripteditor können Sie mehrere Arten von Haltepunkten einfügen und die Konfiguration eines Haltepunkts jederzeit bearbeiten, auch während Spieltests. Wenn Sie Haltepunkte während einer Spieltest-Sitzung bearbeiten, bleiben die Änderungen auch nach Abschluss bestehen. Sie können auch einen Haltepunkt bearbeiten, der aktiv Ihre Spieltest-Sitzung pausiert, aber Änderungen werden erst in der nächsten Spieltest-Sitzung angewendet.
Einfügen
Haltepunkte haben mehrere Variationen und können an jeder Zeile ausführbaren Codes wie folgt eingefügt werden:
Um einen Standard-Haltepunkt an einer Codezeile einzufügen, klicken Sie in den Rand direkt rechts von der Zeilennummer. Alternativ können Sie mit der rechten Maustaste in den Rand klicken und Haltepunkt einfügen auswählen. Das Haltepunkt-Symbol erscheint als roter Kreis.

Deaktivieren
Um einen Haltepunkt vorübergehend zu deaktivieren, ohne ihn zu löschen, verwenden Sie einen der folgenden Workflows:
- Klicken Sie auf das Symbol des Haltepunkts.
- Klicken Sie mit der rechten Maustaste auf das Symbol des Haltepunkts und wählen Sie Haltepunkt deaktivieren.
- Bearbeiten Sie den Haltepunkt und aktivieren Sie das Kontrollkästchen Aktiviert.
Ein deaktivierter Haltepunkt erscheint als hohle Version seines aktivierten Symbols, zum Beispiel ein hohler Kreis für einen deaktivierten Standard-Haltepunkt oder ein hohles Quadrat für einen deaktivierten Logpunkt.


Löschen
Um einen Haltepunkt zu löschen, klicken Sie mit der mittleren Maustaste auf sein Symbol oder klicken Sie mit der rechten Maustaste auf sein Symbol und wählen Sie Haltepunkt löschen.
Bearbeiten
Sie können die Konfiguration eines Haltepunkts jederzeit bearbeiten, auch während Spieltests. Wenn Sie Haltepunkte während einer Spieltest-Sitzung bearbeiten, bleiben die Änderungen auch nach Abschluss bestehen. Sie können auch einen Haltepunkt bearbeiten, der aktiv Ihre Spieltest-Sitzung pausiert, aber Änderungen werden erst in der nächsten Spieltest-Sitzung angewendet.
Um einen Haltepunkt zu bearbeiten:
Klicken Sie mit der rechten Maustaste auf das Haltepunkt-Symbol und wählen Sie Haltepunkt bearbeiten.
Konfigurieren Sie im Fenster Haltepunkt bearbeiten den Haltepunkt nach Wunsch. Sie können diese Konfigurationen kombinieren, um Ihren Debugging-Bedürfnissen am besten gerecht zu werden.
Option Beschreibung Bedingung Ein optionaler Ausdruck, der bestimmt, ob der Haltepunkt aktiviert wird. Wenn die Bedingung leer ist, wird der Haltepunkt immer aktiviert. Wenn die Bedingung vorhanden ist, wird der Haltepunkt zu einem bedingten Haltepunkt und aktiviert sich nur, wenn die Bedingung wahr ist. Wenn Sie möchten, dass der Haltepunkt nur aktiviert wird, wenn die Variable var gleich 10 ist, setzen Sie die Bedingung auf var == 10. Protokollnachricht Ein Ausdruck, der im Ausgabefenster ausgegeben wird, wenn der Haltepunkt erreicht wird. Das Format der Protokollnachricht ist dasselbe wie das einer print()-Anweisung. Setzen Sie beispielsweise die Protokollnachricht auf "Der Wert von var:", var, um dieselbe Nachricht wie print("Der Wert von var:", var) auszugeben. Ausführung fortsetzen Bestimmt, ob der Haltepunkt das Skript pausiert, wenn er aktiviert wird. Diese Option ist standardmäßig deaktiviert, es sei denn, der eingefügte Haltepunkt ist ein Logpunkt. Haltepunkt bei Treffer entfernen Wenn aktiviert, entfernt sich der Haltepunkt automatisch nach der ersten Spieltest-Sitzung, wodurch er effektiv zu einem temporären Haltepunkt wird. Auslösen bei Der Kontext eines Haltepunkts bestimmt, ob er im Client (clientseitige Skripte), Server (serverseitige Skripte) oder Bearbeiten (Debugging Plugin-Skripte) aktiviert werden soll. Wenn Sie Benutzerdefinierter Kontext wählen, zeigt das Fenster die aktuellen Auslösekontexte an.
Workflow
Der typische Workflow für das Haltepunkt-Debugging ist wie folgt:
Öffnen Sie das Skript, das Sie debuggen möchten, und fügen Sie Haltepunkte an den Codezeilen ein, die Sie untersuchen möchten.
Starten Sie von Studios Mezzanine aus einen Spieltest, um mit dem Debuggen zu beginnen.

Wenn das Skript einen Haltepunkt erreicht, pausiert die Spieltest-Sitzung, es sei denn, dieser Haltepunkt ist konfiguriert, um die Ausführung fortzusetzen. Ein gelber Pfeil über dem Haltepunkt zeigt an, welche Codezeile als nächstes ausgeführt wird.

Während das Skript pausiert, inspizieren Sie das Haltepunkte-Fenster, das Überwachen-Fenster, das Aufrufstapel-Fenster, das Ausgabefenster und den Skripteditor, um Informationen über Variablenwerte und Funktionsausführungen zu finden.
Um die Ausführung des Codes nach dem Erreichen eines Haltepunkts fortzusetzen, klicken Sie auf Skripte fortsetzen im Mezzanine.

Sie können auch den Code zeilenweise mit den Schritt-Buttons im Mezzanine ausführen:

Aktion Shortcut Beschreibung Schritt hinein F11 Die Schaltfläche Schritt hinein bewegt den Debugger in den Code der Funktion in der aktuellen Zeile. Wenn in der aktuellen Zeile keine Funktion vorhanden ist, bewegt sich der Debugger zur nächsten Zeile. Schritt über F10 Die Schaltfläche Schritt über bewegt den Debugger zur nächsten Codezeile, ohne in Funktionen zu wechseln. Schritt heraus ShiftF11 Die Schaltfläche Schritt heraus bewegt den Debugger aus der aktuellen Funktion heraus zur nächsten Codezeile nach dem Funktionsaufruf. Wenn die aktuelle Zeile nicht innerhalb einer Funktion ist, bewegt sich der Debugger zur nächsten Zeile. Wenn Sie mit dem Debuggen der aktuellen Sitzung fertig sind, klicken Sie auf die Schaltfläche Stop.

Überwachung
Studio umfasst mehrere Fenster und Tools, um Variablenwerte und Funktionsausführungen während des Debuggens zu überwachen. Mit diesen Informationen können Sie die Ursache der meisten Probleme in Ihren Skripten finden.

Haltepunkte
Das Haltepunkte-Fenster ist eine einheitliche Ansicht, die alle Haltepunkte in allen Skripten anzeigt. Um es zu öffnen, klicken Sie auf Haltepunkte in der Symbolleiste des Skript-Tabs von Studio oder navigieren Sie zum Menü Fenster ⟩ Debug und aktivieren Sie Haltepunkte.
Im Fenster werden die Spalten Skript und Zeile immer angezeigt, und Sie können andere Konfigurations-Spalten über das Menü ⋮ in der oberen rechten Ecke ein- oder ausschalten. Innerhalb der Skript-Spalte können Sie mit der rechten Maustaste auf einen Haltepunkt klicken, um ein Optionsmenü anzuzeigen, um ihn zu bearbeiten, deaktivieren/aktivieren, löschen oder zur Zeile des Haltepunkts im Skript zu springen.

Während einer Debugging-Sitzung zeigt die äußerste linke Spalte (x3) an, dass es mehrere Kontexte (Client, Server, Bearbeiten) für den Haltepunkt gibt. Durch das Erweitern eines Haltepunkts können Sie auf das Symbol neben einem bestimmten Kontext klicken, um ihn für diesen Kontext zu deaktivieren/aktivieren, z. B. einen Haltepunkt nur im Client-Kontext zu deaktivieren, während er im Server-Kontext aktiviert bleibt.

Aufrufstapel
Das Aufrufstapel-Fenster, das über die Symbolleiste des Skript-Tabs von Studio oder das Menü Fenster ⟩ Debug zugänglich ist, zeigt an, welche Codezeile als nächstes ausgeführt wird, wenn der Debugger einen Haltepunkt erreicht. Wenn Sie Funktionen aus anderen Funktionen aufrufen, zeigt es an, von welchen Zeilen diese Funktionen aufgerufen wurden, sodass Sie bestätigen können, ob der tatsächliche Aufruffluss mit dem erwarteten Fluss übereinstimmt.


Während das Skript an Haltepunkten pausiert, verwenden Sie die Schritt-Buttons im Mezzanine, um in eine Funktion/Zeile hinein, darüber oder heraus zu gehen, wie im Workflow beschrieben.

Überwachen
Das Überwachen-Fenster, das über die Symbolleiste des Skript-Tabs von Studio oder das Menü Fenster ⟩ Debug zugänglich ist, ermöglicht es Ihnen, aktiv Variablen- und Ausdruckswerte zu überwachen, während Sie durch Haltepunkte schrittweise vorgehen.
Der Variablen-Tab zeigt Informationen über die aktuellen Variablen im Geltungsbereich, filterbar durch Klicken auf die Schaltfläche Alle Geltungsbereiche in der oberen Leiste des Fensters. Das Erweitern eines Zweigs zeigt die Mitglieder dieser Variablen oder Instanz und deren Werte. Sie können auch jede Variable überwachen, indem Sie sie im Skripteditor doppelt markieren, mit der rechten Maustaste klicken und Überwachen hinzufügen aus dem Popup-Menü auswählen.


Skripteditor
Der Debugger ist in den Skripteditor integriert. Wenn Ihr Spiel an einem Haltepunkt in einem Skript pausiert, können Sie mit der Maus über den Namen einer Variablen fahren, um ihren Wert zu sehen. Zum Beispiel können Sie die Zusammensetzung einer Tabelle und deren enthaltene Schlüssel/Werte sehen.

Zusätzliche Debugging-Tools
Neben dem Debugger bietet Studio zusätzliche Debugging-Tools, um Probleme und Fehler in Ihrem Spiel zu beheben.
Befehlszeile
Die Befehlszeile ermöglicht es Ihnen, Luau-Befehle auszuführen, während das Spiel läuft. Sie ist in Studio im Menü Fenster ⟩ Skript und in der Entwicklerkonsole verfügbar.
Entwicklerkonsole
Die Entwicklerkonsole bietet eine Vielzahl von Details, einschließlich Client- und Serverausgaben, Speicherverbrauch, Netzwerkleistung und mehr. Um die Konsole während des Testens oder Spielens eines Spiels zu öffnen, geben Sie /console in den Chat ein oder drücken Sie F9.
Protokolldateien
Wenn ein Skript in Studio oder der Spieler-App druckt oder einen Fehler ausgibt, protokolliert die App die Nachricht in einer Protokolldatei im lokalen Dateisystem. Diese Dateien befinden sich an verschiedenen Orten, abhängig vom Betriebssystem.
Windows
Um auf Protokolldateien unter Windows zuzugreifen:
- Öffnen Sie den Datei-Explorer.
- Navigieren Sie zum Verzeichnis %LOCALAPPDATA%\Roblox\logs.
- Doppelklicken Sie auf ein Protokoll, um es zu öffnen. Protokolle mit demselben XXXXX-Wert stammen aus derselben Studio-Sitzung.
Mac
Um auf Protokolldateien auf dem Mac zuzugreifen:
- Öffnen Sie den Finder.
- Wählen Sie in der Menüleiste Gehe zu ⟩ Gehe zu Ordner....
- Geben Sie im Dialogfeld ~/Library/Logs/Roblox ein.
- Doppelklicken Sie auf das Ergebnis, um zum Roblox-Protokollverzeichnis zu navigieren.
- Doppelklicken Sie im Verzeichnis auf ein Protokoll, um es zu öffnen.
iOS
Sie können iOS-Protokolle mit einem Mac oder einem iOS-Gerät sammeln.
Um auf iOS-Protokolldateien auf einem Mac zuzugreifen:
- Schließen Sie das iOS-Gerät an einen Mac an.
- Öffnen Sie den Finder.
- Navigieren Sie zu Dienstprogramme und öffnen Sie die Konsole-Anwendung.
- Um Echtzeitprotokolle in der Konsolenanwendung zu füllen, wählen Sie das iOS-Gerät aus der Seitenleiste aus, klicken Sie auf die Schaltfläche Start und reproduzieren Sie das Problem auf dem iOS-Gerät.
- Um archivierte Protokolle in der Konsolenanwendung zu füllen, führen Sie sudo log collect --device-name "[iOS-Gerätename]" im Terminal aus. Stellen Sie sicher, dass im Namen des Geräts keine Apostrophe enthalten sind, da Sie sonst beim Ausführen des Befehls einen Fehler erhalten könnten.
Android
Um auf Protokolldateien auf Android zuzugreifen:
- Navigieren Sie zu Einstellungen ⟩ System ⟩ Entwickleroptionen.
- Aktivieren Sie die Entwickleroptionen.
- Laden Sie auf einem Computer Android Studio herunter und installieren Sie es.
- Klicken Sie in Android Studio auf Logcat.
- Schließen Sie das Android-Gerät an den Computer an, um Logcat automatisch mit Protokollen zu füllen.