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 il debug del codice in Roblox. A differenza della libreria debug trovata in Lua nativamente, questa versione è stata fortemente sandboxata.

Sommario

Funzioni

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

    Restituisce una stringa di formato non definito che descrive il current function Registro chiamate.

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

    Restituisce una stringa di formato non definito che descrive il current function Registro chiamate.

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

    Attraversa l'intera stack di thread attuale e restituisce una stringa che contiene il call stack dei dettagli di livello di destinazione.

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

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

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

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

  • profilebegin(label : string):void

    Inizia a profilare per un'Etichetta.

  • profileend():void

    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

message: string

La prima riga della Stringarestituita.

level: number

Il numero di chiamate "up" che il call stack per Riportare.

Valore predefinito: 1

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

thread: coroutine

Un thread come restituito da coroutine.create() .

message: string

La prima riga della Stringarestituita.

level: number

Il numero di chiamate "up" che il call stack per Riportare.

Valore predefinito: 1

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

level: number

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.

options: string

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.
  • l ( numero ) — Il numero di riga della chiamata funzione rappresentata da level .
  • n ( stringa ) — Il nome della funzione; può essere nil per le funzioni anonime e C funzioni senza un nome di debug assegnato.
  • a ( numero , boolean ) — Arity della funzione, che si riferisce al numero di parametri e se la funzione è variabile.
  • 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

function: function

La funzione dello stack di chiamata che il ritorno delle informazioni dovrebbe descrivere.

options: string

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.
  • l ( numero ) — The line that function is defined on.
  • n ( stringa ) — Il nome della funzione; può essere nil per le funzioni anonime e C funzioni senza un nome di debug assegnato.
  • a ( numero , boolean ) — Arity della funzione, che si riferisce al numero di parametri e se la funzione è variabile.
  • 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

thread: coroutine

Un thread come restituito da coroutine.create() .

level: number

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.

options: string

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.
  • l ( numero ) — Il numero di riga della chiamata funzione rappresentata da level .
  • n ( stringa ) — Il nome della funzione; può essere nil per le funzioni anonime e C funzioni senza un nome di debug assegnato.
  • a ( numero , boolean ) — Arity della funzione, che si riferisce al numero di parametri e se la funzione è variabile.
  • f (funzione ) — La funzione che è stata ispezionata.

Restituzioni

profilebegin

void

Inizia a profilare per un MicroProfiler Etichetta.

Parametri

label: string

Il testo che questa MicroProfiler etichetta mostra.

Restituzioni

void

profileend

void

Interrompe il profiling per il più recente MicroProfiler label che debug.profilebegin() aperto.

Restituzioni

void

getmemorycategory

Restituisce il nome della categoria della memoria attiva del Filocorrente.

Restituzioni

La categoria di memoria attiva del Filocorrente.

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

tag: string

Restituzioni

La precedente categoria di memoria del Filocorrente.

resetmemorycategory

void

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

Restituzioni

void

dumpcodesize

void

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.

Restituzioni

void