Fehlerbehandlung

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Studio bietet viele Debugging-Tools, die häufig in integrierten Entwicklungsumgebungen (IDEs) gefunden werden.Diese Tools helfen Ihnen, Fehler zu beheben und Skripte Zeile für Zeile zu inspizieren, während sie ausführenwerden.Debug-Info wird in der Watch, Anrufstapel, Abbaupunkte und Ausgabe-Fenster angezeigt, die du überprüfen kannst.

Allgemeiner Workflow

Wenn Sie ein Problem in Ihrer Erfahrung feststellen oder überprüfen möchten, dass es wie beabsichtigt funktioniert, können Sie den dazugehörigen Code wie folgt debuggen:

  1. Füge Abbruchpunkte ein auf den Zeilen von Codes, die du untersuchen möchtest.

  2. Klicke auf der Skript-Registerkarte auf Spielen oder Ausführen in der Test-Registerkarte, um eine Spieltest-Sitzung zu starten, auch bekannt als Debugging-Sitzung.

    Playtest options in Script tab.
  3. Wenn ein Skript einen Haltepunkterreicht, wird die Spieltest-Sitzung unterbrochen.Überprüfen Sie die Uhr, Anrufstapel und Ausgabe Fenster, um Ihnen bei der Diagnose und Verständnis des Problems zu helfen.

  4. Füge zusätzliche Unterbrechungspunkte in Zeilen von Code ein, die noch nicht ausgeführt wurden, um zusätzliche Daten zu inspizieren.Deaktiviere oder lösche Abbaupunkte, die du nicht mehr benötigst.

  5. Klicken Sie auf der Skript -Registerkarte auf Stopp , um die Debugging-Sitzung zu beenden.

Wiederhole die vorherigen Schritte, bis du das Problem gelöst oder seine Ursache gefunden hast.Wenn du den allgemeinen Workflow erlernst, kannst du die Bruchpunkte so konfigurieren, dass sie nur dann brechen, wenn bestimmte Bedingungen erfüllt sind, eine Nachricht in das Ausgabe-Fenster drucken und nur auf dem Client oder Server ausgeführt werden.Für weitere Informationen, siehe Bruchpunkt-Konfigurationen.

Pausenpunkte einfügen

Bruchpunkte sind Kontrollpunkte, die die Ausführung deiner Skripte an bestimmten Linien unterbrechen oder "brechen".Du kannst die Pausen verwenden, um dein Erlebnis zu inspizieren und zu debuggen, beobachte Variablen und inspiziere den Anrufstapel.Bruchpunkte sind einer der effektivsten Wege, um Funktionen zu debuggen, also sind sie eines der wichtigsten Debugging-Tools.Du kannst einen Breakpoint an jeder Ausführungszeile von Codeseinfügen.

Um einen Standard-Breakpoint in einer Zeile des Codes einzufügen, klicke links auf die Margen rechts von ihrer Zeilennummer.Du kannst auch mit der rechten Maustaste auf die Margen klicken und dann auf Einfügen-Abstandspunkt klicken.Der Breakpoint erscheint als roter Punkt.Um es zu deaktivieren, klicke auf den Punkt.

Breakpoint in gutter is a red dot

Schritt durch Codesgehen

Wenn du einen Pausenpunkt in einer Zeile in einem Skript, das. PL: die Skriptseinfügst, wird das Skript vor der Ausführung dieser Zeile unterbrochen.Ein gelber Pfeil namens "Debugger" zeigt an, welche Codezeile als nächstes ausgeführt wird.

Active breakpoint in the debugger shows yellow arrow

Wenn das Skript pausiert, führe den folgenden Code eine Zeile nach der anderen aus, indem du mit den Schaltflächen in der Skript-Registerkarte durchläufst.Die Schaltflächen erscheinen auch in der oberen linken Ecke des Anrufstapels-Fensters.Wenn du durch den Codesgehst, überwache, wie sich deine Erfahrung ändert, wenn die aktuelle Linie ausgeführt wird.

Debugging tools indicated in Script tab

Die folgende Tabelle fasst die drei Möglichkeiten zusammen, durch Code zu gehen.Um die Ausführung deines Codes fortzusetzen, nachdem du einen Haltepunkterreicht hast, klicke auf Fortsetzen in der Skript -Registerkarte.

TasteAktionTastenkürzelBeschreibung
Button to step into a line of code Schritt in F11Die Schritt in Schaltfläche bewegt den Debugger in den Code der Funktion auf der aktuellen Zeile.Wenn es auf der aktuellen Linie keine Funktion gibt, bewegt sich der Debugger auf die nächste Linie.
Button to step over a line of code Schritt Über F10Die Schritt Über -Taste bewegt den Debugger zur nächsten Zeile des Codes, nicht in Funktionen.
Button to step out of a line of code Schritt nach außen ShiftF11Die Schritt nach außen -Taste bewegt den Debugger aus der aktuellen Funktion und auf die nächste Zeile des Codes nach der Funktionsaufruf.Wenn die aktuelle Zeile nicht in einer Funktion ist, bewegt sich der Debugger zur nächsten Zeile.

Codesinspizieren

Wenn ein Breakpoint die Erfahrung während eines Spiel testenunterbricht, kannst du das Beobachtungsfenster , das Anrufstapel -Fenster, das Ausgabe-Fenster und das Skript-Editor inspizieren, um Informationen über Variablenwerte und Funktionsausführungen zu finden.Mit diesen Informationen kannst du die Ursache des Problems in deiner Erlebnisfinden.

Ansehen

Das Watch -Fenster hat zwei Registerkarten: Variablen und Meine Uhren .Die Variablen -Registerkarte zeigt Informationen über die derzeitigen Variablen im Umfang an, und die Meine Uhren -Registerkarte zeigt den Wert von Variablen oder Ausdrücken an, die Sie definieren.Beide Registerkarten zeigen Informationen an, bevor die Zeile ausgeführt wird.

Die Variablen -Registerkarte hat die folgenden Spalten:

  • Name – Der deklarierte Name der Variable.
  • Bereich – Der Bereich der Variable: Wo sie "gesehen" und zugänglich gemacht werden kann, wie lokal, global oder Upvalue.
  • Wert – Der aktuelle Wert der Variable.
  • Datentyp – Der Datentyp der Variable.

Die Meine Uhren -Registerkarte hat die folgenden Spalten:

  • Ausdruck – Der Ausdruck, den du beobachten möchtest.
  • Wert – Der aktuelle Wert der Ausdruck.
  • Datentyp – Der Datentyp der Ausdrücke.

In der Variablen -Registerkarte kannst du den Umfang der Variablen filtern, indem du auf das Symbolklickst.Du kannst auch die Zeilen sortieren, indem du auf den Namen der Spalte klickst, nach der sortiert werden soll.Das Anzeigefenster bietet erweiterte und zusammengezogene Ansichten von Tabellen.

Watch Window with variable values

Um Code im Beobachtungsfenster zu inspizieren:

  1. Wenn das Watch -Fenster nicht geöffnet ist, klicken Sie auf Watch in der Ansicht-Registerkarte.

  2. Wenn deine Spieltest-Sitzung an einem Punkt anhält, denke darüber nach, wie du erwartest, dass die aktuelle Zeile die Werte von Variablen in diesem Skript, das. PL: die Skriptsändert.

  3. Wenn du durch den Codesgehst, beobachte, wie sich der Wert der Variablen im Variablen -Tab ändert.Wenn du eine Ausdruck nicht auf der Registerkarte Variablen anzeigen möchtest, öffne die Registerkarte Meine Uhren .Klicke auf eine leere Zeile in der Ausdruck-Säule und gib dann die Ausdruck in sie ein.Wenn du eine Variable im Skript-Editor anzeigen möchtest, klicke doppelt auf den Namen der Variable, dann klicke rechts auf Variable hinzufügen .

  4. Vergleiche die Werte von Variablen und Ausdrücken mit dem, was du erwartest und was du im Beobachtungsfenster siehst.Wenn es einen Unterschied zwischen der Art und Weise, wie du erwartest, dass sich die Variablen ändern, und der tatsächlichen Art und Weise, wie sie sich ändern, gibt, können die Variablen oder die Funktionen, mit denen sie interagieren, Probleme oder Fehler verursachen.

Anrufstapel

Das Anrufstapel-Fenster zeigt an, welche Codezeile als nächstes ausgeführt wird, wenn der Debugger einen Haltepunkterreicht.Der Anrufstapel zeigt an, von welcher Zeile du eine Funktion aufrufst, und wenn du die Funktion in anderen Funktionen aufrufst, die Reihenfolge der Funktionsaufrufe und welche Zeilen du die anderen Funktionen aufrufst.Die oberste Funktion des Anrufstacks ist die zuletzt angerufene und erste zum Ausführen.Du kannst den Anrufstapel verwenden, um zu überprüfen, ob die Reihenfolge der Funktionsaufrufe in deinen Skripten mit deinem mentalen Modell der Funktionsaufrufe übereinstimmt.

Call Stack in Studio

Wenn du mehrere Unterbrechungspunkte in verschiedenen Skripten hast, könnten sie die Spieltest-Sitzung zur gleichen Zeit unterbrechen.Du kannst zu den Bruchpunkten springen, indem du auf den Pfeil neben dem Namen des Skripts im Anrufstapel-Fenster klickst.Wenn du auf Fortsetzen klickst, dann überschreitest du alle Brechpunkte, die zur gleichen Zeit angehalten wurden.

Call Stack with multiple breakpoints

Um Code im Anrufstapel-Fenster während einer Debugging-Sitzung zu inspizieren:

  1. Wenn das Anrufstapel-Fenster nicht geöffnet ist, klicken Sie auf Anrufstapel in der Ansicht-Registerkarte.

  2. Wenn deine Erfahrung an einem Haltepunktpausiert, denke darüber nach, wie du erwartest, dass die Reihenfolge der Funktionsaufrufe in diesem Skript, das. PL: die Skriptsist.

    Script Editor with two functions and one breakpoint
  3. Der Anrufstapel zeigt die Reihenfolge der Funktionsaufrufe an.Wenn der Bruchpunkt sich innerhalb einer Funktion befindet, zeigt der Anrufstapel an, welche Funktion diese Funktion aufruft, falls es welche gibt.Der Anrufstapel zeigt auch den Namen und die Zeilennummer jeder Funktion an.Klicken Sie auf die Zeile, um eine Funktion zu springen, die zu ihr springt.

    Click in Call Stack to jump to line
  4. Vergleiche die Reihenfolge der Funktionsaufrufe, die du im Schritt 2 gedacht hast, und die tatsächliche Reihenfolge aus Schritt 3.Wenn es Unterschiede gibt, dann gibt es einen Unterschied zwischen der Art und Weise, wie du den Code vermutest, und der tatsächlichen Art und Weise, wie er sich verhält, was zu möglichen Problemen und Fehlern führt.

Ausgang

Das Ausgabe-Fenster, das von der Ansicht-Registerkarte aus zugänglich ist, zeigt Fehler an, die durch das Ausführen von Skripten aufgezeichnet wurden, Nachrichten von der Roblox-Engine, Protokommeldungen und Fehler von Anrufen an print() und Anrufen an warn().

Skript-Editor

Der Debugger wird mit dem Skript-Editor integriert.Wenn deine Erfahrung an einem Punkt in einem Skript, das. PL: die Skriptspausiert, kannst du deine Maus über den Namen einer Variablen bewegen, um ihren Wert zu sehen.Zum Beispiel können Sie den Wert eines Tabells sehen, das Sie als Argument in einem Funktionsaufruf übergeben.

Mouseover a variable in Script Editor to show value

Konfiguration von Brechpunkten

Du kannst Breakpoints so konfigurieren, dass sie nur dann brechen, wenn bestimmte Bedingungen erfüllt sind, eine Nachricht in das Ausgabe-Fenster drucken und nur auf dem Client oder Server ausgeführt werden.Sie können diese Konfigurationen auch mischen, um Ihre Debugging-Anforderungen bestmöglich zu erfüllen.

Pausenpunkte bearbeiten

Du kannst die Konfiguration eines Breakpoints jederzeit bearbeiten, auch während des Spieltests.Wenn du während einer Spieltest-Sitzung Unterbrechungspunkte bearbeitest, bleiben die Änderungen bestehen, auch wenn du sie beendet hast.Du kannst auch einen Punkt bearbeiten, der deine Spieltest-Sitzung aktiv unterbricht, aber die Änderungen gelten nicht, bis die nächste Spieltest-Sitzung beginnt.

Um die Konfiguration eines Haltepunktzu bearbeiten:

  1. Klicken Sie mit der rechten Maustaste auf den Haltepunkt, dann klicken Sie auf Bruchpunkt bearbeiten .

    Right click to edit a breakpoint in Studio
  2. Konfiguriere im Bearbeitungspunkt-Fenster den Breakpoint wie gewünscht.

    Edit Breakpoint window in Studio

Bedingung, Nachrichtund Optionen

Für jeden Haltepunktkönnen Sie seine Bedingung , Lognachricht , Fortführung der Ausführung und Kontext festlegen.

Die Bedingung ist die Ausdruck, der bestimmt, ob der Breakpoint aktiviert wird.Die Bedingung ist optional.Wenn die Bedingung leer ist, wird der Breakpoint immer aktiviert.Wenn die Bedingung existiert, aktiviert sich der Breakpoint nur, wenn die Bedingung wahr ist.Wenn du zum Beispiel möchtest, dass der Breakpoint nur dann aktiviert wird, wenn die Variable n gleich 42 ist, dann lege die Bedingung als n == 42 fest.Bedingungen sind nützlich für die Fehlersuche, wie Funktionen ausgeführt werden, wenn bestimmte Variablen bestimmte Werte haben oder wenn du nur bei bestimmten Ausführungen in einer Schleife brechen möchtest.

Die Log-Nachricht ist die Ausdruck, der in das Ausgabe-Fenster gedruckt wird, wenn die Bedingung wahr ist.Das Format der Lognachricht ist das gleiche wie das Argument für eine print() Aussage.Zum Beispiel lege die Lognachricht als "The value of n:", n fest, um die gleiche Nachricht wie print("The value of n:", n) zu drucken.Sie können Lognachrichten hinzufügen und entfernen, ohne die Ausführung zu stoppen, im Gegensatz zu gedruckten Aussagen.

Die Option Ausführung fortsetzen bestimmt, ob der Breakpoint das Skript pausiert, wenn es aktiviert wird.Es ist nützlich, wenn Sie Werte von Variablen oder Ausdrücken ohne Unterbrechung der Ausführung protokollieren möchten.Diese Option ist standardmäßig deaktiviert.

Der Kontext eines Breakpoints bestimmt, ob der Breakpoint auf dem Client, Server oder Bearbeiten aktiviert werden soll.Wenn der Kontext Client ist, wird der Breakpoint in Client-seitigen Skripten ausgelöst.Wenn der Kontext Server ist, wird der Breakpoint in Server-seitigen Skripten ausgelöst.Wenn der Kontext Bearbeiten ist, wird der Breakpoint ausgelöst, wenn du Plugins debuggst.Wenn Sie auf benutzerdefinierten Kontext klicken, zeigt das Fenster den aktuellen Kontext an.

Edit Breakpoint Window shows Custom Context

Bedingte Bruchpunkte und Logpunkte

Studio bietet benannte Variationen von Bruchpunkten an, um die Bruchpunkt-Einsätze schneller zu machen.Um eine benannte Variante einzufügen, klicken Sie mit der rechten Maustaste auf die Randleiste rechts von der Zeilennummer, dann klicken Sie auf die Variante, die Sie einfügen möchten.

Right click to insert a breakpoint

Ein bedingter Breakpoint ist ein Breakpoint mit einer Bedingung und fortgesetzter Ausführung deaktiviert.Bedingte Unterbrechungspunkte pausieren dein Skript nur, wenn eine Bedingung wahr ist, also sind sie nützlich, um zu debuggen, wie Funktionen ausgeführt werden, wenn bestimmte Variablen bestimmte Werte haben.Bedingte Brechpunkte verwenden die Werte der Variablen, bevor die Linie ausgeführt wird.Wenn du einen Bedingungsbruchpunkt einfügst, fokussiert dein Cursor auf die Bedingungsoption , die du schnell festlegen kannst.

Ein Logpunkt ist ein Bruchpunkt mit einer Lognachricht und fortgesetzter Ausführung aktiviert.Logpoints protokollieren Nachrichten in das Ausgabe-Fenster, ohne deine Skripte anzuhalten, so dass sie für die Fehlersuche von Variablen nützlich sind.Logpunkte verwenden die Werte der Variablen, bevor die Zeile ausgeführt wird.Wenn du einen Logpunkt einfügst, fokussiert dein Cursor auf die Lognachricht , um sie schnell festzulegen.

Abbaupunkte deaktivieren

Es gibt viele Möglichkeiten, einen Haltepunktzu deaktivieren und wieder zu aktivieren:

  • Klicken Sie auf das Symbol des Haltepunkt.
  • Bearbeite den Bruchpunkt und schalte seine Aktivierungsbox ein/aus.
  • Klicken Sie mit der rechten Maustaste auf das Breakpoint-Symbol und wählen Sie Deaktivieren von Breakpoint oder Aktivieren von Breakpoint.

Abbruchpunkte löschen

Um einen Haltepunktzu löschen, klicke mit der mittleren Maustaste auf sein Symbol. Du kannst auch mit der rechten Maustaste auf sein Symbol klicken und Breakpoint löschen wählen.

Abbaupunkte-Fenster

Das Bruchpunktfenster zeigt alle Bruchpunkte in deiner Erlebnisan.Um das Fenster "Ausbruchpunkte" zu öffnen, klicke auf die Registerkarte "Ansicht" oben in Studio und dann auf "Ausbruchpunkte".

Breakpoints window in Studio

Das Abbruchpunkt-Fenster hat die folgenden Spalten: unbenannt, Skript, Zeile, Quellzeile, Bedingung, Lognachricht und Fortsetzung der Ausführung.Die unbenannten, Skript- und Zeilen-Säulen werden immer angezeigt, aber du kannst die anderen Säulen umschalten, indem du auf die drei Punkte in der oberen rechten Ecke des Fensters klickst.

In der nicht gekennzeichneten Spalte zeigt das Label (x3) die Anzahl der Bruchpunkte auf derselben Codesan, und das Symbol zeigt die Bruchpunktkonfiguration an.Die Bruchpunkte auf derselben Linie teilen die gleiche Bedingung, Lognachricht und Fortsetzung der Ausführung, unterscheiden sich aber im Kontext.Du kannst die Konfiguration eines Breakpoints im Breakpoints-Fenster bearbeiten.Zum Beispiel können Sie die Bedingung eines Breakpoints bearbeiten, indem Sie das Textfeld in seiner Bedingungsspalte bearbeiten.

Edit the Condition of a Breakpoint in the Breakpoints Window

Du kannst Bruchpunkte aktivieren und deaktivieren, indem du auf sein Bruchpunkt-Symbol in der aktivierten Spalte klickst.Du kannst auch die folgenden Schaltflächen anklicken, um einige oder alle Brechpunkte zu aktivieren, zu deaktivieren und zu löschen.

TasteAktion
Button to disable all breakpointsDeaktiviere alle Brechpunkte. Wenn irgendwelche Brechpunkte deaktiviert sind, aktiviere sie Alle.
Button to delete all breakpointsLösche alle Bruchpunkte.

Abbruchpunkt-Ikonen

Das Symbol eines Breakpoints hängt davon ab, ob es aktiviert ist, eine Bedingung hat und eine Nachrichthat.Wenn ein Breakpoint eine Nachrichthat, erscheint er als Logpunkt, unabhängig davon, ob er eine Bedingung hat oder nicht.

NamenSymbolAktiviertBedingungProtokollnachricht
AbbruchpunktJaNeinNein
KeineKeineKeine
Konditioneller BrechpunktJaJaNein
KeineJaKeine
LogpunktJaVielleichtJa
KeineVielleichtJa

Zusätzliche Fehlersuchentools

Zusätzlich zum Debugger bietet Studio zusätzliche Debugging-Tools, mit denen Sie Probleme und Fehler in Ihrer Erlebnisbeheben können.

Befehlsbalken

Die Befehlsleiste ermöglicht es Ihnen, Luau-Befehle auszuführen, während die Erfahrung läuft.Es ist in Studio verfügbar von der Ansicht -Registerkarte und in der Entwickler-Konsole.

Entwickler-Konsole

Die Entwicklerkonsole bietet ein breites Spektrum an Details, einschließlich Client- und Serverse输出, Speicherverbrauch, Erfüllungund mehr.Um die Entwicklerkonsole während des Tests oder Spiels einer Erlebniszu öffnen, gib /console in den Chat ein oder drücke F9.Weitere Informationen finden Sie unter Entwickler-Konsole.

Protokolldateien

Wenn ein Skript druckt oder Fehler in Studio oder der Spieler-App auftreten, speichert die App die Nachricht in einem Log-Datei im lokalen Dateisystem.Diese Dateien befinden sich an verschiedenen Orten, je nach Betriebssystem.

Fenster

Um auf Windows Logdateien zuzugreifen:

  1. Öffne Datei-Explorer .
  2. Navigiere zum %LOCALAPPDATA%\Roblox\logs Ordner.
  3. Klicken Sie doppelt auf ein Log, um es zu öffnen. Logs mit demselben XXXXX sind aus derselben Studio-Sitzung.

Mac

Um auf dem Mac Logdateien zuzugreifen:

  1. Öffne Finder .
  2. Wählen Sie in der Menüleiste Gehen > Gehe zum Ordner... .
  3. Geben Sie im Dialog ~/Library/Logs/Roblox ein.
  4. Klicken Sie doppelt auf das Ergebnis, um zum Roblox-Logs-Verzeichnis zu navigieren.
  5. Im Inneren des Verzeichnisses klicken Sie zweimal auf ein Log, um es zu öffnen.

iOS

Du kannst iOS-Logs mit einem Mac oder mit einem iOS-Gerät sammeln.

Um auf einem Mac iOS-Protokolldateien zuzugreifen:

  1. Verbinde das iOS-Gerät mit einem Mac.
  2. Öffne Finder .
  3. Navigiere zu Utilities und öffne die Konsole -Anwendung.
  4. Um Echtzeit-Protokolle in der Konsolen-Anwendung zu füllen, wählen Sie das iOS-Gerät aus der Seitenleiste, klicken Sie auf die Schaltfläche Start und reproduzieren Sie das Problem auf dem iOS-Gerät.
  5. Um archivierte Protokolle in der Konsole-Anwendung zu füllen, führen Sie sudo log collect --device-name "[iOS Device Name]" im Terminal aus.Stellen Sie sicher, dass es keine apostrophen im Namen des Geräts gibt, oder Sie erhalten möglicherweise einen Fehler, wenn Sie den Befehl ausführen.

Android

Um auf Android Logdateien zuzugreifen:

  1. Navigiere zu Einstellungen > System > Entwickleroptionen .
  2. Schalte Entwickleroptionen ein.
  3. Auf einem Computer herunterladen und installieren Android Studio.
  4. In Android Studio klicken Sie auf Logcat .
  5. Verbinde das Android-Gerät mit dem Computer, um Logcat automatisch mit Logs zu füllen.