debug

Veraltete anzeigen

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

Bietet einige grundlegende Funktionen für die Fehlersuche von Code in Roblox.Im Gegensatz zur debug Bibliothek, die in Lua nativ gefunden wird, wurde diese Version stark sandboxiert.

Zusammenfassung

Funktionen

  • traceback(message : string,level : number):string

    Gibt eine Reihe von unbestimmten Formaten zurück, die den aktuellen Funktionsrufstapel beschreiben.

  • traceback(thread : coroutine,message : string,level : number):string

    Gibt eine Reihe von unbestimmten Formaten zurück, die den aktuellen Funktionsrufstapel beschreiben.

  • info(level : number,options : string):Tuple

    Überquert den gesamten Stack des aktuellen Threads und gibt eine Zeichenkette zurück, die den Anrufstapel der Zielstufendetails enthält.

  • info(function : function,options : string):Tuple

    Überquert den gesamten Stack des aktuellen Threads und gibt eine Zeichenkette zurück, die den Anrufstapel der Zielfunktionsdetails enthält.

  • info(thread : coroutine,level : number,options : string):Tuple

    Überquert den gesamten Stapel des Zielthreads und gibt eine Zeichenkette zurück, die den Anrufstapel der Details der Zielebene enthält.

  • profilebegin(label : string):()

    Beginnt mit der Profilerstellung für ein Beschriftung.

  • Stoppt die Profilerstellung für das neueste Label, das debug.profilebegin() geöffnet wurde.

  • Gibt die Name der aktiven Kategoriedes aktuellen Threads zurück.

  • Weist einen benutzerdefinierten Tag der Kategoriedes aktuellen Threads zu.

  • Setzt das Attribut, das von debug.setmemorycategory() dem automatisch zugewiesenen Wert zugewiesen wurde, auf den vom Skript festgelegten Wert zurück (normalerweise der Skriptname).

  • Zeigt eine Tabelle der nativen Codegröße einzelner Funktionen und Skripte an.

Funktionen

traceback

Gibt eine Rückverfolgung des aktuellen Funktionsaufrufstacks als String zurück; mit anderen Worten, eine Beschreibung der Funktionen, die bis zu diesem Punkt aufgerufen wurden.Während der Fehlersuche verhält sich dies wie eine Fehlersstack-Spur, stoppt aber nicht die Ausführung des Skript, das. PL: die Skripts.

Der level -Parameter gibt an, auf welchem Niveau des Anrufstacks zu berücksichtigen ist, mit 1 der Anruf von debug.traceback() selbst, 2 der Anruf der Funktion, die debug.traceback() aufruft, und so weiter.Siehe das Codebeispiel unten für ein Beispiel für sequenzielle Funktionsaufrufe.

Beachten Sie, dass diese Funktion oft ungenaue Ergebnisse zurückgibt (im Vergleich zum ursprünglichen Codes) und dass sich das Format der zurückgegebenen Rückverfolgung jederzeit ändern kann.Du solltest nicht den Rückgabewert für spezifische Informationen wie Skriptnamen oder Zeilennummern parsen.

Das folgende Beispiel enthält sequenzielle Funktionsaufrufe; fnB() wird aufgerufen, und es ruft fnA() auf, das dann debug.traceback() aufruft.


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Funktion fnB() aufrufen, um die Rückverfolgung zu beginnen
fnB()

Parameter

message: string

Die erste Zeile der zurückgegebenen String.

level: number

Die Anzahl der Anrufe "auf" den Anrufstack, um zurückgeben.

Standardwert: 1

Rückgaben

Verfolgung des aktuellen Funktionsrufstacks.

traceback

Gibt eine Rückverfolgung des aktuellen Funktionsaufrufstacks als String zurück; mit anderen Worten, eine Beschreibung der Funktionen, die bis zu diesem Punkt aufgerufen wurden.Während der Fehlersuche verhält sich dies wie eine Fehlersstack-Spur, stoppt aber nicht die Ausführung des Skript, das. PL: die Skripts.

Der level -Parameter gibt an, auf welchem Niveau des Anrufstacks zu berücksichtigen ist, mit 1 der Anruf von debug.traceback() selbst, 2 der Anruf der Funktion, die debug.traceback() aufruft, und so weiter.Siehe das Codebeispiel unten für ein Beispiel für sequenzielle Funktionsaufrufe.

Beachten Sie, dass diese Funktion oft ungenaue Ergebnisse zurückgibt (im Vergleich zum ursprünglichen Codes) und dass sich das Format der zurückgegebenen Rückverfolgung jederzeit ändern kann.Du solltest nicht den Rückgabewert für spezifische Informationen wie Skriptnamen oder Zeilennummern parsen.

Das folgende Beispiel enthält sequenzielle Funktionsaufrufe; fnB() wird aufgerufen, und es ruft fnA() auf, das dann debug.traceback() aufruft.


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Funktion fnB() aufrufen, um die Rückverfolgung zu beginnen
fnB()

Parameter

thread: coroutine

Ein Thread, wie von coroutine.create() zurückgegeben.

message: string

Die erste Zeile der zurückgegebenen String.

level: number

Die Anzahl der Anrufe "auf" den Anrufstack, um zurückgeben.

Standardwert: 1

Rückgaben

Verfolgung des aktuellen Funktionsrufstacks.

info

Ermöglicht die programmatische Inspektion des Anrufstacks.Diese Funktion unterscheidet sich von debug.traceback() darin, dass sie das Format der zurückgegebenen Daten garantiert.Dies ist nützlich für allgemeine Aufzeichnungs- und Filternzwecke sowie für das Senden der Daten an Systeme, die strukturierte Eingaben erwarten, wie z. B. Absturzaggregation.


local function fnA()
-- Ausgabe-Quellen-Identifikator ("s") und Zeile ("l") auf Ebenen 1 und 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Beachten Sie, dass diese Funktion ähnlich ist mit debuggen.getinfo, einem nicht verfügbaren Teil der Standard-Lua-Bibliothek, der einem ähnlichen Zweck dient.

Parameter

level: number

Bestimmt, auf welcher Ebene des Anrufstacks die zurückgegebenen Informationen beschrieben werden sollen.Ein Wert von 1 repräsentiert die Funktion, die debug.info() aufruft, ein Wert von 2 repräsentiert die Funktion, die diese Funktion aufgerufen hat, und so weiter.

options: string

Eine Zeichenkette, die beschreibt, was die zurückgegebenen Informationen repräsentieren sollen.Es darf nur 0 oder 1 Instanzen der Zeichen slnaf enthalten, die jeweils ein Stück Information darstellen:

  • s ( Zeichenkette ) — Die Funktionsquellen-Identifikator, gleich dem vollen Namen des Skripts, in dem die Funktion definiert ist.
  • l ( Nummer ) — Die Zeilennummer des Funktionsaufrufs, die durch level repräsentiert wird.
  • n ( Zeichenfolge ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne zugewiesenen Fehlerspeichername sein.
  • a ( Zahl , booleschen ) — Arithmetik der Funktion, die sich auf die Anzahl der Parameter und darauf bezieht, ob die Funktion variabel ist.
  • f ( Funktion ) — Die Funktion, die inspiziert wurde.

Rückgaben

info

Ermöglicht die programmatische Inspektion des Anrufstacks.Diese Funktion unterscheidet sich von debug.traceback() darin, dass sie das Format der zurückgegebenen Daten garantiert.Dies ist nützlich für allgemeine Aufzeichnungs- und Filternzwecke sowie für das Senden der Daten an Systeme, die strukturierte Eingaben erwarten, wie z. B. Absturzaggregation.


local function fnA()
end
local function fnB()
end
-- Ausgabelinie ("l"), Name ("n") und Identifikator ("f") für fnA() und fnB()
print(debug.info(fnA, "lnf")) --> 1 fnA-Funktion: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Beachten Sie, dass diese Funktion ähnlich ist mit debuggen.getinfo, einem nicht verfügbaren Teil der Standard-Lua-Bibliothek, der einem ähnlichen Zweck dient.

Parameter

function: function

Die Funktion des Anrufstacks, die die zurückgegebenen Informationen beschreiben soll.

options: string

Eine Zeichenkette, die beschreibt, was die zurückgegebenen Informationen repräsentieren sollen.Es darf nur 0 oder 1 Instanzen der Zeichen slnaf enthalten, die jeweils ein Stück Information darstellen:

  • s ( Zeichenkette ) — Die Funktionsquellen-Identifikator, gleich dem vollen Namen des Skripts, in dem die Funktion definiert ist.
  • l ( Zahl ) — Die Zeile, auf der function definiert ist.
  • n ( Zeichenfolge ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne zugewiesenen Fehlerspeichername sein.
  • a ( Zahl , booleschen ) — Arithmetik der Funktion, die sich auf die Anzahl der Parameter und darauf bezieht, ob die Funktion variabel ist.
  • f ( Funktion ) — Die Funktion, die inspiziert wurde.

Rückgaben

info

Ermöglicht die programmatische Inspektion des Anrufstacks.Diese Funktion unterscheidet sich von debug.traceback() darin, dass sie das Format der zurückgegebenen Daten garantiert.Dies ist nützlich für allgemeine Aufzeichnungs- und Filternzwecke sowie für das Senden der Daten an Systeme, die strukturierte Eingaben erwarten, wie z. B. Absturzaggregation.


local function fnA()
-- Ausgabe-Quellen-Identifikator ("s") und Zeile ("l") auf Ebenen 1 und 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Beachten Sie, dass diese Funktion ähnlich ist mit debuggen.getinfo, einem nicht verfügbaren Teil der Standard-Lua-Bibliothek, der einem ähnlichen Zweck dient.

Parameter

thread: coroutine

Ein Thread, wie von coroutine.create() zurückgegeben.

level: number

Bestimmt, auf welcher Ebene des Anrufstacks die zurückgegebenen Informationen beschrieben werden sollen.Ein Wert von 1 repräsentiert die Funktion, die debug.info() aufruft, ein Wert von 2 repräsentiert die Funktion, die diese Funktion aufgerufen hat, und so weiter.

options: string

Eine Zeichenkette, die beschreibt, was die zurückgegebenen Informationen repräsentieren sollen.Es darf nur 0 oder 1 Instanzen der Zeichen slnaf enthalten, die jeweils ein Stück Information darstellen:

  • s ( Zeichenkette ) — Die Funktionsquellen-Identifikator, gleich dem vollen Namen des Skripts, in dem die Funktion definiert ist.
  • l ( Nummer ) — Die Zeilennummer des Funktionsaufrufs, die durch level repräsentiert wird.
  • n ( Zeichenfolge ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne zugewiesenen Fehlerspeichername sein.
  • a ( Zahl , booleschen ) — Arithmetik der Funktion, die sich auf die Anzahl der Parameter und darauf bezieht, ob die Funktion variabel ist.
  • f ( Funktion ) — Die Funktion, die inspiziert wurde.

Rückgaben

profilebegin

()

Beginnt mit der Profilerstellung für ein Beschriftung.

Parameter

label: string

Der Text, den diese MicroProfiler-Etikette anzeigt.

Rückgaben

()

profileend

()

Stoppt die Profilerstellung für das neueste MicroProfiler-Label, das debug.profilebegin() geöffnet wurde.

Rückgaben

()

getmemorycategory

Gibt die Name der aktiven Kategoriedes aktuellen Threads zurück.

Rückgaben

Die aktive Kategoriedes aktuellen Threads.

setmemorycategory

Weist einen benutzerdefinierten Tagnamen für die Speicherregion des aktuellen Threads in der Entwickler-Konsole zu.Nützlich für die Analyse der Speicherverwendung mehrerer Threads in demselben Skript, die sonst unter demselben Tag/Namen zusammengefasst würden.Gibt den Namen der vorherigen Kategoriedes aktuellen Threads zurück.

Parameter

tag: string

Rückgaben

Die vorherige Kategoriedes aktuellen Threads.

resetmemorycategory

()

Setzt das Attribut, das von debug.setmemorycategory() dem automatisch zugewiesenen Wert zugewiesen wurde, auf den vom Skript festgelegten Wert zurück (normalerweise der Skriptname).

Rückgaben

()

dumpcodesize

()

Zeigt eine Tabelle der nativen Codegröße einzelner Funktionen und Skripte an.Diese Funktion ist nur in der Kommandoleiste in Studio verfügbar.Weitere Details finden Sie auf der Native Code-Generierung Seite.

Rückgaben

()