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 la debugazione del codice in Roblox.A differenza della libreria debug trovata in Lua nativamente, questa versione è stata pesantemente sandboxata.
Sommario
Funzioni
Restituisce una stringa di formato non definito che descrive il stack di chiamata funzione attuale.
Restituisce una stringa di formato non definito che descrive il stack di chiamata funzione attuale.
Attraversa l'intera stack del thread attuale e restituisce una stringa che contiene la call stack dei dettagli del livello target.
Attraversa l'intera stack del thread attuale e restituisce una stringa che contiene la call stack dei dettagli della funzione target.
Attraversa l'intera stack del thread target e restituisce una stringa che contiene la call stack dei dettagli del livello target.
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
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
Un thread come restituito da coroutine.create() .
La prima linea della Stringarestituita.
Il numero di chiamate "up" della call stack da Riportare.
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
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.
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.
- n ( string ) — Il nome della funzione; può essere nil per funzioni anonime e funzioni C senza un nome di debug assegnato.
- 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
La funzione della call stack che le informazioni restituite dovrebbero descrivere.
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.
- n ( string ) — Il nome della funzione; può essere nil per funzioni anonime e funzioni C senza un nome di debug assegnato.
- 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
Un thread come restituito da coroutine.create() .
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.
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.
- n ( string ) — Il nome della funzione; può essere nil per funzioni anonime e funzioni C senza un nome di debug assegnato.
- f ( funzione ) — La funzione che è stata ispezionata.
Restituzioni
profilebegin
Inizia a profilare per un'EtichettaMicroProfiler .
Parametri
Il testo che questo MicroProfiler etichetta mostra.
Restituzioni
profileend
Interrompe la profilazione per l'etichetta più recente MicroProfiler che debug.profilebegin() è stata aperta.
Restituzioni
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
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.