debug
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Fornisce alcune funzioni di base per il debug del codice in Roblox. A differenza della libreria debug trovata in Lua nativamente, questa versione è stata fortemente sandboxata.
Sommario
Funzioni
Restituisce una stringa di formato non definito che descrive il current function Registro chiamate.
Restituisce una stringa di formato non definito che descrive il current function Registro chiamate.
Attraversa l'intera stack di thread attuale e restituisce una stringa che contiene il call stack dei dettagli di livello di destinazione.
Attraversa l'intera stack del thread corrente e restituisce una stringa che contiene il call stack dei dettagli della funzione target.
Attraversa l'intera stack di thread target e restituisce una stringa che contiene il call stack dei dettagli di livello target.
Inizia a profilare per un'Etichetta.
Interrompe il profiling per l'ultimo label che debug.profilebegin() ha aperto.
Restituisce il nome della categoria della memoria attiva del Filocorrente.
Assegna un tag personalizzato alla categoria della memoria della Filocorrente.
Ripristina il tag assegnato da debug.setmemorycategory() al valore assegnato automaticamente (in genere, il nome dello script).
Mostra una tabella del codice nativo delle funzioni e degli script individuali.
Funzioni
traceback
Restituisce un traceback della attuale funzione call stack come una Stringa; in altre parole, una descrizione delle funzioni che sono state chiamate fino a questo punto. Durante il debugging, questo si comporta come un traceback degli errori ma non interrompe l'esecuzione dello script.
Il parametro level specifica il livello di call stack da considerare, con 1 che è la chiamata di debug.traceback() stesso, 2>22> che è la chiamata della funzione che chiama 5>Library. Debug. traceback()5> e così via. Vedi l'esempio di codice sottostante per un esempio di
Nota che questa funzione restituirà spesso risultati inesatti (rispetto al codice sorgente originale) e che il formato del tracciamento restituito potrebbe cambiare in qualsiasi momento. Dovresti non parlare il valore restituito per informazioni specifiche, come il nome degli script o i numeri di riga.
L'esempio seguente include chiamate funzionali 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
Restituzioni
Traceback della current function Registro chiamate.
traceback
Restituisce un traceback della attuale funzione call stack come una Stringa; in altre parole, una descrizione delle funzioni che sono state chiamate fino a questo punto. Durante il debugging, questo si comporta come un traceback degli errori ma non interrompe l'esecuzione dello script.
Il parametro level specifica il livello di call stack da considerare, con 1 che è la chiamata di debug.traceback() stesso, 2>22> che è la chiamata della funzione che chiama 5>Library. Debug. traceback()5> e così via. Vedi l'esempio di codice sottostante per un esempio di
Nota che questa funzione restituirà spesso risultati inesatti (rispetto al codice sorgente originale) e che il formato del tracciamento restituito potrebbe cambiare in qualsiasi momento. Dovresti non parlare il valore restituito per informazioni specifiche, come il nome degli script o i numeri di riga.
L'esempio seguente include chiamate funzionali 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
Un thread come restituito da coroutine.create() .
La prima riga della Stringarestituita.
Il numero di chiamate "up" che il call stack per Riportare.
Restituzioni
Traceback della current function Registro chiamate.
info
Consente di eseguire una programmata ispezione della Registro chiamate. Questa funzione differisce da debug.traceback() in quanto garantisce il formato dei dati che restituisce. Questo è utile per scopi di debug generici e filtro, nonché per l'invio dei dati ai sistemi che supportano l'input strutturato, come la raccolta di crash.
local function fnA()
-- Output source identifier ("s") e line ("l") a 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
Determina a quale livello della call stack l'informazione restituita deve descrivere. Un valore di 1 rappresenta la funzione che chiama debug.info(), un valore di 2 rappresenta la funzione che ha chiamato quella funzione, e così via.
Una stringa che descrive ciò che il ritorno dovrebbe rappresentare. Deve contenere solo 0 o 1 istanze dei personaggi slnaf , ognuna rappresentante un pezzo di informazioni:
- s (stringa ) — L'identificatore della fonte della funzione, uguale al nome completo dello script in cui la funzione è definita.
- n ( stringa ) — Il nome della funzione; può essere nil per le funzioni anonime e C funzioni senza un nome di debug assegnato.
- f (funzione ) — La funzione che è stata ispezionata.
Restituzioni
info
Consente di eseguire una programmata ispezione della Registro chiamate. Questa funzione differisce da debug.traceback() in quanto garantisce il formato dei dati che restituisce. Questo è utile per scopi di debug generici e filtro, nonché per l'invio dei dati ai sistemi che supportano l'input strutturato, come la raccolta di crash.
local function fnA()
end
local function fnB()
end
-- Output line ("l"), name ("n") e identificatore ("f") per entrambe funzioneA() e funzioneB()
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
La funzione dello stack di chiamata che il ritorno delle informazioni dovrebbe descrivere.
Una stringa che descrive ciò che il ritorno dovrebbe rappresentare. Deve contenere solo 0 o 1 istanze dei personaggi slnaf , ognuna rappresentante un pezzo di informazioni:
- s (stringa ) — L'identificatore della fonte della funzione, uguale al nome completo dello script in cui la funzione è definita.
- n ( stringa ) — Il nome della funzione; può essere nil per le funzioni anonime e C funzioni senza un nome di debug assegnato.
- f (funzione ) — La funzione che è stata ispezionata.
Restituzioni
info
Consente di eseguire una programmata ispezione della Registro chiamate. Questa funzione differisce da debug.traceback() in quanto garantisce il formato dei dati che restituisce. Questo è utile per scopi di debug generici e filtro, nonché per l'invio dei dati ai sistemi che supportano l'input strutturato, come la raccolta di crash.
local function fnA()
-- Output source identifier ("s") e line ("l") a 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
Un thread come restituito da coroutine.create() .
Determina a quale livello della call stack l'informazione restituita deve descrivere. Un valore di 1 rappresenta la funzione che chiama debug.info(), un valore di 2 rappresenta la funzione che ha chiamato quella funzione, e così via.
Una stringa che descrive ciò che il ritorno dovrebbe rappresentare. Deve contenere solo 0 o 1 istanze dei personaggi slnaf , ognuna rappresentante un pezzo di informazioni:
- s (stringa ) — L'identificatore della fonte della funzione, uguale al nome completo dello script in cui la funzione è definita.
- n ( stringa ) — Il nome della funzione; può essere nil per le funzioni anonime e C funzioni senza un nome di debug assegnato.
- f (funzione ) — La funzione che è stata ispezionata.
Restituzioni
profilebegin
Inizia a profilare per un MicroProfiler Etichetta.
Parametri
Il testo che questa MicroProfiler etichetta mostra.
Restituzioni
profileend
Interrompe il profiling per il più recente MicroProfiler label che debug.profilebegin() aperto.
Restituzioni
setmemorycategory
Assigna un nome tag personalizzato alla categoria della memoria attuale in the Developer Console . Utile per analizzare l'utilizzo della memoria di più Filonello stesso script che altrimenti sarebbe grouped insieme sotto lo stesso tag/nome. Ritorna il nome della memoria attuale Filo.
Parametri
Restituzioni
La precedente categoria di memoria del Filocorrente.
resetmemorycategory
Ripristina il tag assegnato da debug.setmemorycategory() al valore assegnato automaticamente (in genere, il nome dello script).
Restituzioni
dumpcodesize
Mostra una tabella del codice di natura delle funzioni e degli script individuali. Questa funzione è disponibile solo nella barra dei comandi in Studio. Ulteriori dettagli possono essere trovati sulla pagina Generazione del codice nativo.