debug
*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 das Debuggen von Code in Roblox. Im Gegensatz zur debug Bibliothek, die in Lua nativ gefunden ist, wurde diese Version stark sandboxed.
Zusammenfassung
Funktionen
Kehre eine Reihe von unbenutzten Zeichen zurück, die die aktuelle Funktionsaufrufsstapel beschreiben.
Kehre eine Reihe von unbenutzten Zeichen zurück, die die aktuelle Funktionsaufrufsstapel beschreiben.
Überquert die gesamte Stack der aktuellen Thread und gibt eine Zeichenkette zurück, die den Call Stack der Ziellevel-Details enthält.
Überquert die gesamte Stack der aktuellen Thread und gibt eine Zeichenfolge zurück, die die Call Stack der Zielfunktionen enthält.
Überquert die gesamte Stack-Ebene des Ziel-Threads und gibt eine Strings zurück, die den Call Stack der Ziel-Level-Details enthält.
Startet das Profiling für ein Beschriftung.
Stoppt das Profiling für das neueste Label, das debug.profilebegin() geöffnet wurde.
Gibt den Namen der aktiven Kategoriedes aktuellen Threads zurück.
Weist dem aktuellen Kategorieein benutzerdefiniertes Tag zu.
Setzt das von debug.setmemorycategory() zugewiesene Tag auf den automatisch zugewiesenen Wert (in der Regel der Skriptname).
Zeigt eine Tabelle der nativen Codegröße einzelner Funktionen und Skripte an.
Funktionen
traceback
Gibt eine Rückgabe des aktuellen Funktions堆s als Stringzurück; mit anderen Worten, eine Beschreibung der Funktionen, die bis zu diesem Zeitpunkt aufgerufen wurden. Während des Debugs funktioniert dies wie ein Fehler-Stack-Trace, stoppt jedoch die Ausführung des Skript, das. PL: die Skriptsnicht.
Der level -Parameter gibt an, welche Stufe des Aufrufs des Stack zu berücksichtigen ist, mit 1 als Aufruf von debug.traceback() selbst, 1>21> als Aufruf der Funktion 4>Library. debuggen. traceback4> und so weiter. Siehe das Codebeispiel unten für ein Beispiel sequentieller Funktionsru
Beachten Sie, dass diese Funktion oft ungenaue Ergebnisse (im Vergleich zum ursprünglichen Codes) zurückgibt und dass die Formatierung des zurückgegebenen Rückrufs jederzeit ändern kann. Sie sollten nicht Parsen Sie den zurückgegebenen Wert für spezifische Informationen wie Skriptnamen oder Zeilennummern.
Das folgende Beispiel enthält sequenzielle Funktionsaufrufe; fnB() wird aufgerufen, und es ruft fnA() auf, was dann debug.traceback() aufruft.
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Rufe die Funktion funB() auf, um den Rückverfolgungsprozess zu beginnen
fnB()
Parameter
Rückgaben
Traceback der aktuellen Funktionsstapel.
traceback
Gibt eine Rückgabe des aktuellen Funktions堆s als Stringzurück; mit anderen Worten, eine Beschreibung der Funktionen, die bis zu diesem Zeitpunkt aufgerufen wurden. Während des Debugs funktioniert dies wie ein Fehler-Stack-Trace, stoppt jedoch die Ausführung des Skript, das. PL: die Skriptsnicht.
Der level -Parameter gibt an, welche Stufe des Aufrufs des Stack zu berücksichtigen ist, mit 1 als Aufruf von debug.traceback() selbst, 1>21> als Aufruf der Funktion 4>Library. debuggen. traceback4> und so weiter. Siehe das Codebeispiel unten für ein Beispiel sequentieller Funktionsru
Beachten Sie, dass diese Funktion oft ungenaue Ergebnisse (im Vergleich zum ursprünglichen Codes) zurückgibt und dass die Formatierung des zurückgegebenen Rückrufs jederzeit ändern kann. Sie sollten nicht Parsen Sie den zurückgegebenen Wert für spezifische Informationen wie Skriptnamen oder Zeilennummern.
Das folgende Beispiel enthält sequenzielle Funktionsaufrufe; fnB() wird aufgerufen, und es ruft fnA() auf, was dann debug.traceback() aufruft.
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Rufe die Funktion funB() auf, um den Rückverfolgungsprozess zu beginnen
fnB()
Parameter
Ein Thread, der von coroutine.create() zurückgegeben wurde.
Die erste Zeile der zurückgegebenen Strings.
Die Anzahl der Aufrufe, "auf" die Rufstapel zurückgeben.
Rückgaben
Traceback der aktuellen Funktionsstapel.
info
Erlaubt es, programmatische Inspektionen des Call-Stacks zu erlauben. Diese Funktion unterscheidet sich von debug.traceback() in dem sie die Formatierung der zurückgegebenen Daten garantiert. Dies ist nützlich für allgemeine Log- und Filtersysteme, einschließlich der Versendung der Daten an Systeme, die strukturierte Eingaben erwarten, wie z. B. Crash-Agregation.
local function fnA()
-- Output-Quelle identifizieren ("s") und Line ("l") auf Stufe 1 und 2
print(debug.info(1, "sl")) --> fonA() 3
print(debug.info(2, "sl")) --> fonA() 7
end
fnA()
Beachten Sie, dass diese Funktion ähnlich ist zu debuggen.getinfo, einer nicht verfügbaren Teil der Standard-Lua-Bibliothek, die einem ähnlichen Zweck dient.
Parameter
Bestimmt, auf welcher Ebene des Aufrufs des Stapels die zurückgegebene Information beschrieben werden soll. Ein Wert von 1 repräsentiert die Funktion, die aufruft, und ein Wert von debug.info() repräsentiert die Funktion, die aufgerufen wird. So weiter.
Eine Zeichenfolge, die beschreibt, was die zurückgegebene Information repräsentieren soll. Sie muss nur 0 oder 1 Instanzen der Zeichen slnaf enthalten, die jeweils ein Stück Information repräsentieren:
- s ( string ) — Die Funktionsquellen-Identifikator, gleich wie der vollständige Name des Skripts, in dem die Funktion definiert ist.
- n ( string ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne einen zugewiesenen Debug-Namen sein.
- f ( Funktion ) — Die Funktion, die inspiziert wurde.
Rückgaben
info
Erlaubt es, programmatische Inspektionen des Call-Stacks zu erlauben. Diese Funktion unterscheidet sich von debug.traceback() in dem sie die Formatierung der zurückgegebenen Daten garantiert. Dies ist nützlich für allgemeine Log- und Filtersysteme, einschließlich der Versendung der Daten an Systeme, die strukturierte Eingaben erwarten, wie z. B. Crash-Agregation.
local function fnA()
end
local function fnB()
end
-- Output-Linie ("l"), Name ("n") und Identifikator ("f") für beide fnA() und dlB()
print(debug.info(fnA, "lnf")) --> 1 fonction fN: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2
Beachten Sie, dass diese Funktion ähnlich ist zu debuggen.getinfo, einer nicht verfügbaren Teil der Standard-Lua-Bibliothek, die einem ähnlichen Zweck dient.
Parameter
Die Funktion des Aufrufs des Stack, die die zurückgegebene Information beschreiben sollte.
Eine Zeichenfolge, die beschreibt, was die zurückgegebene Information repräsentieren soll. Sie muss nur 0 oder 1 Instanzen der Zeichen slnaf enthalten, die jeweils ein Stück Information repräsentieren:
- s ( string ) — Die Funktionsquellen-Identifikator, gleich wie der vollständige Name des Skripts, in dem die Funktion definiert ist.
- n ( string ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne einen zugewiesenen Debug-Namen sein.
- f ( Funktion ) — Die Funktion, die inspiziert wurde.
Rückgaben
info
Erlaubt es, programmatische Inspektionen des Call-Stacks zu erlauben. Diese Funktion unterscheidet sich von debug.traceback() in dem sie die Formatierung der zurückgegebenen Daten garantiert. Dies ist nützlich für allgemeine Log- und Filtersysteme, einschließlich der Versendung der Daten an Systeme, die strukturierte Eingaben erwarten, wie z. B. Crash-Agregation.
local function fnA()
-- Output-Quelle identifizieren ("s") und Line ("l") auf Stufe 1 und 2
print(debug.info(1, "sl")) --> fonA() 3
print(debug.info(2, "sl")) --> fonA() 7
end
fnA()
Beachten Sie, dass diese Funktion ähnlich ist zu debuggen.getinfo, einer nicht verfügbaren Teil der Standard-Lua-Bibliothek, die einem ähnlichen Zweck dient.
Parameter
Ein Thread, der von coroutine.create() zurückgegeben wurde.
Bestimmt, auf welcher Ebene des Aufrufs des Stapels die zurückgegebene Information beschrieben werden soll. Ein Wert von 1 repräsentiert die Funktion, die aufruft, und ein Wert von debug.info() repräsentiert die Funktion, die aufgerufen wird. So weiter.
Eine Zeichenfolge, die beschreibt, was die zurückgegebene Information repräsentieren soll. Sie muss nur 0 oder 1 Instanzen der Zeichen slnaf enthalten, die jeweils ein Stück Information repräsentieren:
- s ( string ) — Die Funktionsquellen-Identifikator, gleich wie der vollständige Name des Skripts, in dem die Funktion definiert ist.
- n ( string ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne einen zugewiesenen Debug-Namen sein.
- f ( Funktion ) — Die Funktion, die inspiziert wurde.
Rückgaben
profilebegin
Startet das Profiling für eine MicroProfiler Beschriftung.
Parameter
Der Text, der dieses MicroProfiler-Etikett anzeigt.
Rückgaben
profileend
Stoppt das Profiling für das neueste MicroProfiler-Etikett, das debug.profilebegin() geöffnet wurde.
Rückgaben
setmemorycategory
Weist einem Thread einen benutzerdefinierten Tag-Namen zu der aktuellen Thread-Speicher-Kategorie in der Developer-Konsole. Nützlich für die Analyse der Speicher-Verwendung mehrerer Threads im selben Skript, die sonst unter demselben Tag/Name zusammengeführt würden. Kehrt den Namen der aktuellen Thread-Speicher-Kategorie zurück.
Parameter
Rückgaben
Die vorherige Speicher-Kategorie des aktuellen Threads.
resetmemorycategory
Setzt das von debug.setmemorycategory() zugewiesene Tag auf den automatisch zugewiesenen Wert (in der Regel der Skriptname).
Rückgaben
dumpcodesize
Zeigt eine Tabelle der nativen Codegröße einzelner Funktionen und Skripte an. Diese Funktion ist nur in der Command Bar in Studio verfügbar. Weitere Details finden Sie auf der Nativen Code-Erzeugungs-Seite.