debug

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Fornisce alcune funzioni di base per la debugazione del codice in Roblox.A differenza della libreria debug trovata in Lua nativamente, questa versione è stata pesantemente sandboxata.

Sommario

Funzioni

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

    Restituisce una stringa di formato non definito che descrive il stack di chiamata funzione attuale.

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

    Restituisce una stringa di formato non definito che descrive il stack di chiamata funzione attuale.

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

    Attraversa l'intera stack del thread attuale e restituisce una stringa che contiene la call stack dei dettagli del livello target.

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

    Attraversa l'intera stack del thread attuale e restituisce una stringa che contiene la call stack dei dettagli della funzione target.

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

    Attraversa l'intera stack del thread target e restituisce una stringa che contiene la call stack dei dettagli del livello target.

  • profilebegin(label : string):()

    Inizia a profilare per un'Etichetta.

  • Interrompe la profilazione per l'etichetta più recente che debug.profilebegin() ha aperto.

  • Restituisce il nome della categoria di memoria attiva del Filocorrente.

  • Assegna un tag personalizzato alla categoria di memoria del Filocorrente.

  • Ripristina il tag assegnato da debug.setmemorycategory() al valore assegnato automaticamente (tipicamente, il nome dello script).

  • Mostra una tabella delle dimensioni del codice nativo delle singole funzioni e script.

Funzioni

traceback

Restituisce una traccia della chiamata funzione attuale come una Stringa; in altre parole, una descrizione delle funzioni che sono state chiamate fino a questo punto.Durante la debugazione, questo si comporta come una traccia di stack di errori ma non interrompe l'esecuzione dello script.

Il parametro level specifica quale livello della call stack considerare, con 1 essendo la chiamata di debug.traceback() stessa, 2 essendo la chiamata della funzione che chiama debug.traceback() , e così via.Vedi l'esempio di codice qui sotto per un esempio di chiamate sequenziali di funzioni.

Si noti che questa funzione restituirà spesso risultati inaccurati (rispetto al codice sorgente originale) e che il formato del tracciamento restituito può cambiare in qualsiasi momento.Non dovresti non analizzare il valore di restituzione per informazioni specifiche come nomi di script o numeri di linea.

L'esempio seguente include chiamate di funzione sequenziali; fnB() è chiamato e chiama fnA() che poi chiama debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Chiama la funzione fnB() per iniziare il tracciamento
fnB()

Parametri

message: string

La prima linea della Stringarestituita.

level: number

Il numero di chiamate "up" della call stack da Riportare.

Valore predefinito: 1

Restituzioni

Traccia della chiamata funzione attuale dello stack.

traceback

Restituisce una traccia della chiamata funzione attuale come una Stringa; in altre parole, una descrizione delle funzioni che sono state chiamate fino a questo punto.Durante la debugazione, questo si comporta come una traccia di stack di errori ma non interrompe l'esecuzione dello script.

Il parametro level specifica quale livello della call stack considerare, con 1 essendo la chiamata di debug.traceback() stessa, 2 essendo la chiamata della funzione che chiama debug.traceback() , e così via.Vedi l'esempio di codice qui sotto per un esempio di chiamate sequenziali di funzioni.

Si noti che questa funzione restituirà spesso risultati inaccurati (rispetto al codice sorgente originale) e che il formato del tracciamento restituito può cambiare in qualsiasi momento.Non dovresti non analizzare il valore di restituzione per informazioni specifiche come nomi di script o numeri di linea.

L'esempio seguente include chiamate di funzione sequenziali; fnB() è chiamato e chiama fnA() che poi chiama debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Chiama la funzione fnB() per iniziare il tracciamento
fnB()

Parametri

thread: coroutine

Un thread come restituito da coroutine.create() .

message: string

La prima linea della Stringarestituita.

level: number

Il numero di chiamate "up" della call stack da Riportare.

Valore predefinito: 1

Restituzioni

Traccia della chiamata funzione attuale dello stack.

info

Consente l'ispezione programmatica della Registro chiamate.Questa funzione differisce da debug.traceback() in quanto garantisce il formato dei dati che restituisce.Questo è utile per scopi di registrazione e filtraggio generali, nonché per l'invio dei dati a sistemi che attendono un input strutturato, come l'aggregazione di crash.


local function fnA()
-- Identificatore della fonte di output ("s") e linea ("l") ai livelli 1 e 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Nota che questa funzione è simile a Debug.getinfo, una parte non disponibile della libreria Lua standard che serve a uno scopo simile.

Parametri

level: number

Determina a quale livello della call stack le informazioni restituite dovrebbero descrivere.Un valore di 1 rappresenta la funzione che sta chiamando debug.info(), un valore di 2 rappresenta la funzione che ha chiamato quella funzione, e così via.

options: string

Una stringa che descrive ciò che le informazioni restituite dovrebbero rappresentare.Deve contenere solo 0 o 1 istanze dei personaggi slnaf, ognuna delle quali rappresenta un pezzo di informazione:

  • s ( string ) — L'identificatore della fonte della funzione, uguale al nome completo dello script in cui la funzione è definita.
  • l ( numero ) — Il numero di linea della chiamata funzione rappresentata da level .
  • n ( string ) — Il nome della funzione; può essere nil per funzioni anonime e funzioni C senza un nome di debug assegnato.
  • a ( numero , booleano ) — Arità della funzione, che si riferisce al numero di parametri e se la funzione è variabile.
  • f ( funzione ) — La funzione che è stata ispezionata.

Restituzioni

info

Consente l'ispezione programmatica della Registro chiamate.Questa funzione differisce da debug.traceback() in quanto garantisce il formato dei dati che restituisce.Questo è utile per scopi di registrazione e filtraggio generali, nonché per l'invio dei dati a sistemi che attendono un input strutturato, come l'aggregazione di crash.


local function fnA()
end
local function fnB()
end
-- Linea di uscita ("l"), nome ("n") e identificatore ("f") per entrambi fnA() e fnB()
print(debug.info(fnA, "lnf")) --> 1 funzione fnA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Nota che questa funzione è simile a Debug.getinfo, una parte non disponibile della libreria Lua standard che serve a uno scopo simile.

Parametri

function: function

La funzione della call stack che le informazioni restituite dovrebbero descrivere.

options: string

Una stringa che descrive ciò che le informazioni restituite dovrebbero rappresentare.Deve contenere solo 0 o 1 istanze dei personaggi slnaf, ognuna delle quali rappresenta un pezzo di informazione:

  • s ( string ) — L'identificatore della fonte della funzione, uguale al nome completo dello script in cui la funzione è definita.
  • l ( numero ) — La linea su cui è definita function.
  • n ( string ) — Il nome della funzione; può essere nil per funzioni anonime e funzioni C senza un nome di debug assegnato.
  • a ( numero , booleano ) — Arità della funzione, che si riferisce al numero di parametri e se la funzione è variabile.
  • f ( funzione ) — La funzione che è stata ispezionata.

Restituzioni

info

Consente l'ispezione programmatica della Registro chiamate.Questa funzione differisce da debug.traceback() in quanto garantisce il formato dei dati che restituisce.Questo è utile per scopi di registrazione e filtraggio generali, nonché per l'invio dei dati a sistemi che attendono un input strutturato, come l'aggregazione di crash.


local function fnA()
-- Identificatore della fonte di output ("s") e linea ("l") ai livelli 1 e 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Nota che questa funzione è simile a Debug.getinfo, una parte non disponibile della libreria Lua standard che serve a uno scopo simile.

Parametri

thread: coroutine

Un thread come restituito da coroutine.create() .

level: number

Determina a quale livello della call stack le informazioni restituite dovrebbero descrivere.Un valore di 1 rappresenta la funzione che sta chiamando debug.info(), un valore di 2 rappresenta la funzione che ha chiamato quella funzione, e così via.

options: string

Una stringa che descrive ciò che le informazioni restituite dovrebbero rappresentare.Deve contenere solo 0 o 1 istanze dei personaggi slnaf, ognuna delle quali rappresenta un pezzo di informazione:

  • s ( string ) — L'identificatore della fonte della funzione, uguale al nome completo dello script in cui la funzione è definita.
  • l ( numero ) — Il numero di linea della chiamata funzione rappresentata da level .
  • n ( string ) — Il nome della funzione; può essere nil per funzioni anonime e funzioni C senza un nome di debug assegnato.
  • a ( numero , booleano ) — Arità della funzione, che si riferisce al numero di parametri e se la funzione è variabile.
  • f ( funzione ) — La funzione che è stata ispezionata.

Restituzioni

profilebegin

()

Inizia a profilare per un'EtichettaMicroProfiler .

Parametri

label: string

Il testo che questo MicroProfiler etichetta mostra.

Restituzioni

()

profileend

()

Interrompe la profilazione per l'etichetta più recente MicroProfiler che debug.profilebegin() è stata aperta.

Restituzioni

()

getmemorycategory

Restituisce il nome della categoria di memoria attiva del Filocorrente.

Restituzioni

La categoria di memoria attiva del Filocorrente.

setmemorycategory

Assegna un nome di tag personalizzato alla categoria di memoria del Filocorrente nella Console dello sviluppatore.Utile per analizzare l'utilizzo della memoria di più thread nello stesso script che altrimenti verrebbero riuniti sotto lo stesso tag/nome.Restituisce il nome della precedente categoria di memoria del Filoattuale.

Parametri

tag: string

Restituzioni

La categoria di memoria precedente del Filoattuale.

resetmemorycategory

()

Ripristina il tag assegnato da debug.setmemorycategory() al valore assegnato automaticamente (tipicamente, il nome dello script).

Restituzioni

()

dumpcodesize

()

Mostra una tabella delle dimensioni del codice nativo delle singole funzioni e script.Questa funzione è disponibile solo nella barra dei comandi in Studio.Per maggiori dettagli vedi la pagina Generazione del codice nativo.

Restituzioni

()