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 das Debuggen von Code in Roblox. Im Gegensatz zur debug Bibliothek, die in Lua nativ gefunden ist, wurde diese Version stark sandboxed.

Zusammenfassung

Funktionen

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

    Kehre eine Reihe von unbenutzten Zeichen zurück, die die aktuelle Funktionsaufrufsstapel beschreiben.

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

    Kehre eine Reihe von unbenutzten Zeichen zurück, die die aktuelle Funktionsaufrufsstapel beschreiben.

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

    Überquert die gesamte Stack der aktuellen Thread und gibt eine Zeichenkette zurück, die den Call Stack der Ziellevel-Details enthält.

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

    Überquert die gesamte Stack der aktuellen Thread und gibt eine Zeichenfolge zurück, die die Call Stack der Zielfunktionen enthält.

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

    Überquert die gesamte Stack-Ebene des Ziel-Threads und gibt eine Strings zurück, die den Call Stack der Ziel-Level-Details enthält.

  • profilebegin(label : string):void

    Startet das Profiling für ein Beschriftung.

  • profileend():void

    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

message: string

Die erste Zeile der zurückgegebenen Strings.

level: number

Die Anzahl der Aufrufe, "auf" die Rufstapel zurückgeben.

Standardwert: 1

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

thread: coroutine

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

message: string

Die erste Zeile der zurückgegebenen Strings.

level: number

Die Anzahl der Aufrufe, "auf" die Rufstapel zurückgeben.

Standardwert: 1

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

level: number

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.

options: string

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.
  • l ( Zahl ) — Die Zeilennummer des Funktionsaufrufs, die durch level repräsentiert wird.
  • n ( string ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne einen zugewiesenen Debug-Namen sein.
  • a ( Zahl , Boolean ) — Arity der Funktion, die auf die Anzahl der Argumente und ob die Funktion variadisch ist.
  • 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

function: function

Die Funktion des Aufrufs des Stack, die die zurückgegebene Information beschreiben sollte.

options: string

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.
  • l ( Zahl ) — Die Zeile, auf der function definiert ist.
  • n ( string ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne einen zugewiesenen Debug-Namen sein.
  • a ( Zahl , Boolean ) — Arity der Funktion, die auf die Anzahl der Argumente und ob die Funktion variadisch ist.
  • 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

thread: coroutine

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

level: number

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.

options: string

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.
  • l ( Zahl ) — Die Zeilennummer des Funktionsaufrufs, die durch level repräsentiert wird.
  • n ( string ) — Der Name der Funktion; kann nil für anonyme Funktionen und C-Funktionen ohne einen zugewiesenen Debug-Namen sein.
  • a ( Zahl , Boolean ) — Arity der Funktion, die auf die Anzahl der Argumente und ob die Funktion variadisch ist.
  • f ( Funktion ) — Die Funktion, die inspiziert wurde.

Rückgaben

profilebegin

void

Startet das Profiling für eine MicroProfiler Beschriftung.

Parameter

label: string

Der Text, der dieses MicroProfiler-Etikett anzeigt.

Rückgaben

void

profileend

void

Stoppt das Profiling für das neueste MicroProfiler-Etikett, das debug.profilebegin() geöffnet wurde.

Rückgaben

void

getmemorycategory

Gibt den Namen der aktiven Kategoriedes aktuellen Threads zurück.

Rückgaben

Die aktive Speicher-Kategorie des aktuellen Threads.

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

tag: string

Rückgaben

Die vorherige Speicher-Kategorie des aktuellen Threads.

resetmemorycategory

void

Setzt das von debug.setmemorycategory() zugewiesene Tag auf den automatisch zugewiesenen Wert (in der Regel der Skriptname).

Rückgaben

void

dumpcodesize

void

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.

Rückgaben

void