Studio bietet vieleDebugging-Tools, die in integrierten Entwicklungsumgebungen (IDEs) häufig gefunden werden. Diese Tools helfen Ihnen, Fehler zu beheben und Skripte line-by-line zu inspizieren, während sie ausführenwerden.Debugging-Info wird in den Watch , Call Stack , Breakpoints und 1>Output1>-Fenstern für Sie zum Inspektieren angezeigt.
Allgemeine Workflow
Wenn Sie ein Problem in Ihrem Erlebnis bemerken oder überprüfen möchten, dass es wie Sie es beabsichtigen funktioniert, können Sie den Code, der damit verbunden ist, wie folgt debuggen:
Einrastpunkte einfügen auf den Linien von Codes, die Sie untersuchen möchten.
In der Skript--Registerkarte klicken Sie auf Spielen oder Ausführen in der Test-Registerkarte, um eine Spieltest-Sitzung zu starten, auch bekannt als 2> Debugging-Sitzung2>.
Wenn ein Skript einen Haltepunkttrifft, wird die Spieltest-Sitzung unterbrochen. Gehen Sie durch den Codes. Überprüfen Sie die Watch , Call Stack und Output-Fenster, um Ihnen zu helfen, das Problem zu diagnostizieren und zu verstehen.
Fügen Sie zusätzliche Pausenpunkte auf Zeilen von Code ein, die noch nicht ausgeführt wurden, um zusätzliche Daten zu inspeizieren. Deaktivieren oder löschen Pausenpunkte, die Sie nicht mehr benötigen.
In der Skript--Registerkarte klicken Sie auf Stopp, um die Debug-Sitzung zu beenden.
Wiederholen Sie die vorherigen Schritte, bis Sie das Problem gelöst haben oder seine Wurzelursache gefunden haben. Wenn Sie den allgemeinen Workflow lernen, können Sie die Breakpoints konfigurieren, um nur zu drucken, wenn bestimmte Bedingungen erfüllt sind, um eine Nachricht an das Ausgabefenster zu drucken und nur auf dem Client oder Server auszuführen. Weitere Informationen finden Sie unter Breakpoint-Konfigurationen.
Einrastpunkte einfügen
Breakpoints sind Checkpoints, die die Ausführung Ihrer Skripte an bestimmten Zeilen暂停 oder "brechen". Sie können die Pausen verwenden, um Ihr Erlebnis zu inspizieren und zu debuggen, watche Variablen und inspectiere den Ruf-Stack. Breakpoints sind einer der effektivsten Fehler-Tools, so dass sie ein Breakpoint an jedem Zeile des executable Codeseinfügen können.
Um einen Standard-Zwischenhaltepunkt in einer Codeseinzufügen, klicken Sie mit der linken Maustaste auf die Margen rechts von seiner Zeilennummer. Sie können auch mit der linken Maustaste auf die Margen klicken und auf Einrasten klicken. Der Zwischenhaltepunkt erscheint als roter Punkt. Um ihn zu deaktivieren, klicken Sie auf den Punkt.
Stepping durch Code
Wenn Sie einen Bruchpunkt in einer Zeile eines Skript, das. PL: die Skriptseinfügen, wird das Skript vor der Ausführung dieser Zeile unterbrochen. Ein gelber Pfeil mit dem Namen "Debugger" zeigt an, welche Zeile des Codes als Nächstes ausgeführt wird.
Wenn das Skript aufgehalten wird, führen Sie den folgenden Code einmal durch, indem Sie mit den Buttons in der Skript--Registerkarte durch sie springen. Die Buttons erscheinen auch in der oberen linken Ecke des Call Stack-Fensters. Wenn Sie den Codesdurchsteigen, überwachen Sie, wie sich Ihr Erlebnis ändert, während die aktuelle Zeile ausgeführt wird.
Die folgende Tabelle beschreibt die drei Möglichkeiten, durch Codeszu gehen. Um Ihren Code nach dem Treffen eines Haltepunktauszuführen, klicken Sie auf Fortsetzen in der Skript -Registerkarte.
Taste | Aktion | Tastenkürzel | Beschreibung |
---|---|---|---|
Schritt in | F11 | Die Schritt-in- -Schaltfläche bewegt den Debugger in den Code der Funktion auf der aktuellen Zeile. Wenn auf der aktuellen Zeile keine Funktion vorhanden ist, bewegt sich der Debugger zur nächsten Zeile. | |
Überspringen | F10 | Die Schaltfläche Überschlag über bewegt den Debugger zur nächsten Zeile des Codes, nicht in Funktionen. | |
Aussteigen | ShiftF11 | Die Schaltfläche Step Out bewegt den Debugger aus der aktuellen Funktion und zur nächsten Zeile des Codes nach der Funktionsaufrufe. Wenn die aktuelle Zeile nicht innerhalb einer Funktion ist, bewegt sich der Debugger zur nächsten Zeile. |
Code inspizieren
Wenn ein Breakpoint die Erfahrung während eines Spiel testenunterbricht, kannst du das Zuschauen-Fenster, das Aufruf-Fenster, das Ausgabe-Fenster und das 2> Skript-Editor-Fenster2> inspizieren, um Informationen über Variable Werte und Funktionsausführungen zu finden. Mit dieser Information kannst du die Wurzelursache des Problems in deiner Erlebnisfinden.
Fenster beobachten
Das Watch-Fenster hat zwei Registerkarten: Variables und My Watches. Die 2> Variables2>-Registerkarte zeigt Informationen über die aktuellen Variablen im Umfang und die 5> My Watches5>-Registerkarte zeigt den Wert der Variablen oder Ausdrücke, die Sie definieren. Beide Registerkarten zeigen Informationen vor der Zeile ausgeführt.
Die Variables-Tab hat die folgenden Spalten:
- Name – Der deklarierte Name der Variable.
- Bereich – Der Bereich der Variable: wo er "gesehen" und aufgerufen werden kann, wie z. B. Local, Global oder Upvalue.
- Value - Der aktuelle Wert der Variable.
- Datentyp - Der Datentyp der Variable.
Die Meine Uhren -Registerkarte hat die folgenden Spalten:
- Expression – Die Expressions, die Sie beobachten möchten.
- Value - Der aktuelle Wert der Ausdrücken.
- Datentyp - Der Datentyp der Ausdrücken.
In der Variables-Tab können Sie die Reichweite der Variablen filtern, indem Sie auf das Filter-Symbol klicken. Sie können auch die Zeilen sortieren, indem Sie auf den Namen der Spalte sortieren. Das Uhrfenster bietet sowohl erweiterte als auch zusammengefasste Ansichten der Tabellen.
Um Code im Uhr-Fenster zu überprüfen:
Wenn das Uhr -Fenster nicht geöffnet ist, dann klicken Sie auf Uhr in der Ansicht-Registerkarte.
Wenn deine Spieltest-Sitzung bei einem Haltepunktunterbrochen wird, denke daran, wie du dich erwartest, dass die aktuelle Zeile die Werte von Variablen in diesem Skript, das. PL: die Skriptsändert.
Wenn Sie durch Codessteigen, beachten Sie, wie sich die Werte von Variablen in der Variablen-Registerkarte ändern. Wenn Sie eine Expressions nicht in der Registerkarte Variablen sehen möchten, öffnen Sie die My Watches Registerkarte. Klicken Sie auf eine leere Zeile in der Expressions-Säule, dann geben Sie die Expressions in die Registerkarte Add Watch ein. Wenn Sie eine Variable im Skript
Vergleichen Sie die Werte von Variablen und Ausdrücken mit dem, was Sie erwarten und sehen Sie im Watch-Fenster. Wenn es einen Unterschied zwischen dem, wie Sie die Variablen ändern erwarten, und dem, wie sie tatsächlich ändern, gibt, dann können die Variablen oder die Funktionen, mit denen sie interagieren, möglicherweise Probleme oder Fehler verursachen.
Stack-Fenster aufrufen
Das Call Stack-Fenster zeigt an, welche Zeile von Code als nächstes ausgeführt wird, wenn der Debugger einen Haltepunkterreicht. Das Call Stack zeigt an, welche Zeile Sie aufrufen eine Funktion von und, wenn Sie die Funktion in anderen Funktionen aufrufen, die Reihenfolge der Funktionsrufe und die Zeilen, die Sie die anderen Funktionen aufrufen. Die obere Funktion des Call Stack ist die let
Wenn Sie mehrere Breakpoints in verschiedenen Skripts haben, können sie die Spieltest-Sitzung möglicherweise gleichzeitig pausieren. Sie können zu den Breakpoints springen, indem Sie auf die Schaltfläche neben dem Namen des Skripts in der Call Stack-Fenster klicken. Wenn Sie auf Fortsetzen klicken, dann übersiegen Sie alle Breakpoints, die gleichzeitig unterbrochen wurden.
Um Code in dem Call Stack-Fenster während einer Debug-Sitzung zu inspizieren:
Wenn das Call Stack -Fenster nicht geöffnet ist, dann klicken Sie auf Call Stack in der Ansicht-Registerkarte.
Wenn deine Erfahrung bei einem Haltepunktaufgehalten wird, denke daran, wie du die Reihenfolge der Funktionsaufrufe in diesem Skript, das. PL: die Skriptserwartest.
Der Aufruf-Stack zeigt die Reihenfolge von Funktionsaufrufen an. Wenn der Bruchpunkt in einem Funktionsbereich ist, zeigt der Aufruf-Stack an, welche Funktion aufruft, wenn vorhanden. Der Aufruf-Stack zeigt auch den Namen und die Zeilennummer jeder Funktion an. Klicken Sie auf die Zeile für eine Funktion, um zu ihr zu springen.
Vergleichen Sie die Reihenfolge der Funktionsaufrufe, die Sie in Schritt 2 gedacht haben, und die tatsächliche Reihenfolge von Schritt 3. Wenn es Unterschiede gibt, dann gibt es einen Unterschied zwischen der Art und Weise, wie Sie den Code erwarten, und der tatsächlichen Reihenfolge, wie er tatsächlich funktioniert, was potenzielle Probleme und Fehler verursacht.
Ausgabe-Fenster
Das Ausgabe-Fenster, das von der Ansicht-Registerkarte aus zugänglich ist, zeigt Fehler, die durch die Ausführung von Skripten, Nachrichten von Roblox Engine, Protokolldateien, Nachrichten von Anrufen zu print() und Fehler von Anrufen zu 2> warn()2> aufgezeichnet wurden.
Skript-Editor
Der Debugger ist mit dem Skript-Editor integriert. Wenn Ihr Erlebnis bei einem Breakpoint in einem Skript, das. PL: die Skriptsunterbricht, können Sie mit der Maus über den Namen einer Variable schweben, um seinen Wert anzuzeigen. Zum Beispiel können Sie den Wert einer Tabelle sehen, die Sie als Argument in einer Funktionsaufrufe zuggeben.
Breakpoint-Konfigurationen
Du kannst Ausbruchspunkte nur konfigurieren, wenn bestimmte Bedingungen erfüllt sind, um eine Nachricht im Ausgabe-Fenster zu drucken und nur auf dem Client oder Server auszuführen. Du kannst auch diese Konfigurationen mischen, um deinenDebug-Anforderungen am besten gerecht zu werden.
Brechungspunkte bearbeiten
Sie können die Konfiguration eines Pausenports jederzeit bearbeiten, einschließlich während der Spieltest-Sitzungen. Wenn Sie während einer Spieltest-Sitzung Pausenports bearbeiten, bleiben die Änderungen auch nach dem Beenden bestehen. Sie können auch einen Pausenport bearbeiten, der Ihre Spieltest-Sitzung unterbricht, aber Änderungen gelten nicht, bis die nächste Spieltest-Sitzung beginnt.
Um die Konfiguration eines Haltepunktzu bearbeiten:
Klicken Sie mit der rechten Maustaste auf den Haltepunktund klicken Sie dann auf Ausgangspunkt bearbeiten .
In dem Breakpoint bearbeiten-Fenster konfigurieren Sie den Breakpoint wie Sie wollen.
Bedingung, Log-Nachricht und Optionen
Für jeden Haltepunktkannst du seine Bedingung, Log-Nachricht, Fortfahrt-Ausführen und 2> Kontext2> einstellen.
Die Bedingung ist die Ausdruck, die bestimmt, ob der Breakpoint aktiviert wird. Die Bedingung ist optional. Wenn die Bedingung leer ist, aktiviert sich der Breakpoint immer. Wenn die Bedingung existiert, dann aktiviert sich der Breakpoint nur, wenn die Variable
Die Ausgabe-Nachricht ist die Ausgabe, die auf das Ausgabe-Fenster gedruckt wird, wenn die Bedingung wahr ist. Die Form der Ausgabe ist die gleiche wie die Argument für eine print()-Anweisung. Zum Beispiel setzen Sie die Ausgabe als "The value of n:", n fest, um die gleiche Nach
Die Fortsetzung der Ausführung Option bestimmt, ob der Breakpoint das Skript unterbricht, wenn es aktiviert wird. Es ist nützlich, wenn Sie Werte von Variablen oder Ausdrücken ohne die Unterbrechung der Ausführung aufzeichnen möchten. Diese Option ist standardmäßig deaktiviert.
Der Kontext eines Breakpoints bestimmt, ob der Breakpoint auf dem Client, Server oder Edit aktiviert werden soll. Wenn der Kontext Client ist, dann wird der Breakpoint in Client-Skripts aktiviert. Wenn der Kontext Server ist, dann wird der Breakpoint in Server-Skripts aktiviert. Wenn der Kontext Edit ist, dann wird der Breakpoint aktiviert, wenn Sie Plugins zuDebuggen. Wenn Sie auf Benutzerdefiniert klicken, wird die Fensteranzeige der aktuellen Kontext anzeigen.
Bedingte Breakpoints und Logpoints
Studio bietet benannte Variationen von Pausenpunkten, um die Einführung von Pausenpunkten schneller zu vereinfachen. Um eine benannte Variation einzufügen, klicken Sie mit der rechten Maustaste auf die Margen rechts von seiner Zeilennummer und klicken Sie dann auf die Variante, die Sie einfügen möchten.
Ein Konditionierter Bruchpunkt ist ein Bruchpunkt mit einer Kondition und fortgesetzter Ausführung deaktiviert. Konditionierte Bruchpunkte pausieren Ihr Skript nur, wenn eine Kondition wahr ist, so dass sie für dieDebug-Verfolgung nützlich sind. Konditionierte Bruchpunkte verwenden die Wer
Ein Logpoint ist ein Ausgabe-Fenster mit Ausgabe-Nachrichten und fortlaufender Ausführung aktiviert. Logpoints loggen Nachrichten zur Ausgabe-Fenster, ohne Ihre Skripte zu pausieren, so dass sie nützlich zum Debuggen von variablen Werten sind. Wenn Sie einen Logpoint einfügen, konzentriert sich Ihr Cursor auf die
Logpoints sind oft effizienter für das Debuggen von Variablen als print()-Anweisungen, da sie es ermöglichen, Nachrichten an das Ausgabe-Fenster zu drucken, ohne die aktive Playtest-Sitzung zu stoppen oder neu zu starten. Verglichen mit print()-Anweisungen bleiben Ihre Codes sauber, während Sie Debuggen und sie nach dem Beenden des Debugs leichter entfernen können.
Breakpoints deaktivieren
Es gibt viele Möglichkeiten, einen Haltepunktzu deaktivieren und wieder einzurichten:
- Klicken Sie auf das Symbol des Haltepunkt.
- Bearbeiten Sie den Bruchpunkt und schalten Sie seine Aktivierungs-Checkbox um.
- Klicken Sie mit der rechten Maustaste auf das Breakpoint-Symbol und klicken Sie auf Disable Breakpoint oder Enable Breakpoint.
Brechungen löschen
Um einen Haltepunktzu löschen, klicken Sie mit der mittleren Maustaste auf sein Symbol. Sie können auch mit der rechten Maustaste auf sein Symbol klicken und auf Breakpoint löschen klicken.
Abbaupunkte-Fenster
Das Breakpoints-Fenster zeigt alle Breakpoints in deiner Erlebnisan. Um das Breakpoints-Fenster zu öffnen, klicke auf die Registerkarte Ansicht in der oberen Navigationleiste von Studio und dann auf Breakpoints.
Das Breakpoints-Fenster hat die folgenden Spalten: unbenannt, Skript, Zeile, Quellzeile, Bedingung, Log-Nachricht und Fortführen-Ausführung. Die unbenannten, Skript- und Zeilenspalten werden immer angezeigt, aber Sie können die anderen Spalten durch Klicken der drei Punkte in der oberen rechten Ecke des Fensters umschalten.
In der nicht beschrifteten Spalte zeigt die (x3) Etikette die Anzahl der Breakpoints auf der gleichen Zeile des Codes an, und das Icon zeigt die Breakpoint-Konfiguration an. Die Breakpoints auf der gleichen Zeile teilen die gleichen Bedingungen, Log-Nachricht und Fortfahrt-Ausführung, aber unterscheiden sich im Kontext. Sie können die Konfiguration eines Breakpoints im Breakpoints-Fenster bearbeiten. Zum Beispiel können Sie die Bedingung eines Breakpoints bearbeiten, indem
Du kannst Ausbruchspunkte aktivieren und deaktivieren, indem du auf seinen Ausbruchspunkte-Symbol in der aktivierten Spalte klickst. Du kannst auch auf die folgenden Schaltflächen klicken, um einige oder alle Ausbruchspunkte zu aktivieren, zu deaktivieren und zu löschen.
Taste | Aktion |
---|---|
Deaktivieren Sie alle Pausenpunkte. Wenn ein Pausenpunkt deaktiviert ist, aktivieren Sie ihn Alle. | |
Alle Breakpoints löschen. |
Breakpoint-Symbole
Das Symbol eines Breakpoints basiert darauf, ob er aktiviert ist, eine Bedingung hat und ein Nachrichthat. Wenn ein Breakpoint ein Nachrichthat, wird es als ein Log-Punkt angezeigt, unabhängig davon, ob es eine Bedingung hat.
Name | Symbol | Aktiviert | Bedingung | Log-Nachricht |
---|---|---|---|---|
Auftaktpunkt | Ja | Nein | Nein | |
Nein | Nein | Nein | ||
Bedingter Ausbruchspunkt | Ja | Ja | Nein | |
Nein | Ja | Nein | ||
Logpunkt | Ja | Vielleicht | Ja | |
Nein | Vielleicht | Ja |
ZusätzlicheDebugging-Tools
Zusätzlich zum Debugger bietet Studio weitereDebugging-Tools, mit denen Sie Probleme und Fehler in Ihrem Erlebnis beheben können.
Befehlsleiste
Die Kommandoleiste ermöglicht es Ihnen, Luau-Befehle auszuführen, während die Erfahrung läuft. Es ist in Studio unter der Ansicht -Registerkarte und in der Entwicklerkonsole verfügbar.
Entwicklerkonsole
Die Entwickler-Konsole bietet eine Reihe von Details, einschließlich Client- und Server-Ausgabe, Erinnerungsverwendung, Erfüllungund mehr. Um die /console zu öffnen, während Sie testen oder spielen eine Erlebnis, geben Sie /console im Chat ein oder drücken Sie 1> F91>. Weitere Informationen finden Sie unter 4>Entwickler-Konsole
Protokolldateien
Wenn ein Skript in Studio oder der Player-App Fehler druckt oder Fehler in Studio oder der Player-App auftritt, speichert die App die Nachricht in einem Log-Datei im lokalen Dateisystem. Diese Dateien befinden sich an verschiedenen Orten, abhängig von dem Betriebssystem.
Fenster
Um Zugang zu Log-Dateien auf Windows zu erhalten:
- Öffnen Sie Datei-Explorer .
- Navigate to the %LOCALAPPDATA%\Roblox\logs directory.
- Doppelklicken Sie auf ein Log, um es zu öffnen. Logs mit der gleichen XXXXX Werte sind aus derselben Studio-Sitzung.
Mac
Um Zugang zu Log-Dateien auf dem Mac zu erhalten:
- Öffnen Sie Finder .
- In der Menüleiste wählen Sie Gehen >, Gehen Sie zu Ordner... .
- In dem Dialog geben Sie ~/Library/Logs/Roblox ein.
- Doppelklicken Sie auf das Ergebnis, um zur Roblox-Logs-Directory zu navigieren.
- Klicken Sie in der Liste doppelt auf ein Element, um es zu öffnen.
iOS
Sie können iOS-Protokolle mit einem Mac sammeln oder mit einem iOS-Gerät.
Um auf einem Mac auf iOS-Log-Dateien zuzugreifen:
- Verbinden Sie das iOS-Gerät mit einem Mac.
- Öffnen Sie Finder .
- Navigate to Utilities and open the Console application.
- Um Echtzeit-Protokolle in der Konsole-Anwendung zu füllen, wählen Sie das iOS-Gerät aus der Seitenleiste, klicken Sie auf die Schaltfläche Starten und reproduzieren Sie das Problem auf dem iOS-Gerät.
- Um gespeicherte Protokolle in der Console-Anwendung aufzufüllen, führen Sie sudo log collect --device-name "[iOS Device Name]" in der Terminal-Anwendung . . Stellen Sie sicher, dass keine Großbuchstaben im Namen des Geräts vorhanden sind, oder Sie erhalten möglicherweise einen Fehler beim Ausführen des Befehls.
Android
Um auf Android-Dateien zuzugreifen:
- Navigate to Einstellungen >, System >, Entwickleroptionen .
- Schalten Sie Entwickleroptionen ein.
- On a computer, download and install Android Studio .
- In Android Studio, klicken Sie auf Logcat .
- Verbinden Sie das Android-Gerät mit dem Computer, um Logcat automatisch mit Stämmen zu füllen.