Debug

Roblox Studio offre molti strumenti di debug comunemente presenti negli ambienti di sviluppo integrati (IDE). Il debugger è uno strumento che ti consente di ispezionare gli script riga per riga durante l'esecuzione. Visualizza i dati nelle finestre Ispeziona, Registro chiamate, Punti di rottura, eOutput per consentire l'ispezione.

Debugger nello Studio

Per disattivare e riattivare il debugger, apri il menu Impostazioni di Studio, attiva l'impostazione Debugger abilitato, quindi riavvia Studio.

Attiva il Debugger nelle impostazioni di Studio

Flusso di lavoro generale

Se noti un problema nella tua esperienza o vuoi verificare che funzioni come previsto, puoi eseguire il debug del codice relativo così nel seguente modo:

  1. Inserisci i punti di rottura sulle linee di codice che vuoi esaminare.

  2. Nella scheda Script, fai clic su Riproduci o Esegui nella scheda test per avviare una sessione di test, nota anche come sessione di debug.

    Opzioni di test della scheda script
  3. Quando uno script raggiunte un punto di rottura, la sessione di test si mette in pausa. Passa attraverso il codice. Scorrere il codice Ispeziona le finestre Ispeziona, Registro chiamate e Output per aiutarti a diagnosticare e comprendere il problema.

  4. Inserisci ulteriori punti di rottura sulle linee del codice non ancora eseguite per ispezionare ulteriori dati. Disattivare or eliminare i punti di rottura non più necessari.

  5. Nella scheda Script, fai clic su Stop per terminare la sessione di debug.

    La scheda script mostra i pulsanti di test e di arresto

Ripeti i passaggi precedenti fino a risolvere il problema o a trovarne la propria radice. Man mano che apprendi il flusso di lavoro generale, puoi configurare i punti di rottura in modo che si interrompano solo se vengono soddisfatte determinate condizioni, che stampino un Messaggio nella finestra di Output e che vengano eseguiti solo sul client o sul server. Per maggiori informazioni, fai riferimento alleConfigurazioni dei Punti di rottura.

Inserimento dei punti di rottura

I punti di rottura sono punti di controllo che mettono in pausa o "interrompono" l'esecuzione degli script in corrispondenza di linee specifiche. Puoi utilizzare le pause per ispezionare e fare il debug della tua esperienzaispezionare le variabili e ispezionare ilRegistro chiamate. I punti di rottura sono uno dei modi più efficaci per eseguire il debug delle funzioni, quindi sono uno degli strumenti di debug più importanti. Puoi inserire un Punto di rottura in qualsiasi riga del codice eseguibile.

Per inserire un Punto di rottura standard in una riga di codice, fai clic con il tasto sinistro del mouse sul margine a destra del numero di riga. Puoi anche fare clic con il tasto destro del mouse sul margine e fare clic su Inserisci Punto di rottura. Il Punto di rottura appare come un punto rosso. Per disattivarlo, fai clic sul punto.

Il Punto di rottura nel margine è un punto rosso

Passaggio attraverso il codice

Se inserisci un Punto di rottura in una riga di uno script, lo script si ferma prima di eseguire quella riga. Una freccia gialla, chiamata "debugger", indica la riga di codice da eseguire successivamente.

Il Punto di rottura attivo nel debugger viene visualizzata con una freccia gialla

Quando uno script è in pausa, esegui il codice seguente una riga alla volta, scorrendo i pulsanti della schedaScript. I pulsanti appaiono anche nell'angolo superiore sinistro della finestra Registro chiamate. Man mano che si procede con il codice, monitora come cambia l'esperienza durante l'esecuzione della riga corrente.

Scheda script dedicata alla sezione Debugger

La seguente tabella riassume i tre modi di procedere con il codice. Per continuare l'esecuzione del tuo codice dopo che hai raggiunto un punto di rottura, fai clic su Riprendi nella scheda Script.

PulsanteAzioneScorciatoiaDescrizione
Pulsante per Eseguire il debug passo dopo passo delle istruzioni del codiceEntraF11Il pulsante Esegui il debug passo dopo passo sposta il debugger nel codice della funzione sulla riga corrente. Se non c'è nessuna funzione sulla riga corrente, il debugger passa alla riga successiva.
Pulsante per scavalcare una riga di codiceSuperaF10Il pulsante Scavalca sposta il debugger alla riga di codice successiva, senza passare alle funzioni.
Pulsante Esci dal debug di una riga di codiceEsciMaiuscolo + F11Il pulsante Esci dal debug sposta il debugger fuori dalla funzione corrente e alla riga di codice successiva dopo la chiamata di funzione. Se la riga corrente non è all'interno di una funzione, il debugger si sposta alla riga successiva.

Codice di ispezione

Quando un punto di rottura interrompe l'esperienza durante un test, è possibile esaminare la finestra Ispeziona, la finestra Registro chiamate, la finestra Output e l'Editore script per trovare informazioni sui valori variabili e sulle esecuzioni di funzione. Con queste informazioni, puoi trovare la causa principale del problema all'interno dell'esperienza.

Nella finestra Ispeziona

La finestra Ispeziona ha due schede: Variabili e Le mie ispezioni. La scheda Variabili mostra le informazioni sulle attuali variabili per lo scopo mentre la scheda Le mie ispezioni mostra il valore delle variabili o delle espressioni definite. Entrambe le schede mostrano le informazioni prima che la riga venga eseguita.

La scheda Variabili ha le seguenti colonne:

  • Nome – Il nome dichiarato della variabile.
  • Scopo – Lo scopo della variabile: dove può essere "visto" e accessibile, come Locale, Globale o Upvalue.
  • Valore - L'attuale valore della variabile.
  • Tipo di dati - Il tipo di dati della variabile.

La scheda Le mie ispezioni ha le seguenti colonne:

  • Espressione - L'espressione che desideri ispezionare.
  • Valore - L'attuale valore dell'espressione.
  • Tipo di dati - Il tipo di dati dell'espressione.

Nella scheda Variabili, puoi filtrare lo scopo delle variabili facendo clic sull'icona del filtro. Puoi inoltre mettere in ordine le righe facendo clic sul nome della colonna da ordinare. La finestra ispezione offre la possibilità di visualizzare le tabelle sia in modo esteso che compresso.

Finestra Ispeziona con valori variabili

Per controllare il codice nella finestra Ispeziona:

  1. Se la finestra Guarda non è aperta, fai clic su Guarda nella scheda Visualizza.

  2. Quando la sessione di test si interrompe in un punto di rottura, pensa a come ti aspetti che la riga corrente cambi i valori delle variabili in quello script.

  3. Mentre passi in rassegna il codice, osserva come cambia il valore delle variabili nella scheda Variabili. Se desideri visualizzare un'espressione non presente nella scheda Variabili, apri la scheda Le mie ispezioni. Fai clic su una riga vuota nella colonna Espressione, quindi inserisci l'espressione. Se desideri ispezionare una variabile nell'Editore Script, fai doppio clic sul nome della variabile, clic di destra, e poi di nuovo clic su Aggiungi ispezione.

  4. Metti a confronto i valori e le espressioni delle variabili rispetto a ciò che ti aspetti e a ciò che vedi nella finestra Ispeziona. Se è presente una differenza tra come ti aspetti che le variabili cambino e come effettivamente cambiano, allora le variabili o le funzioni che con essere interagiscono potrebbero causare problemi o bug.

Nella finestra Registro chiamate

La finestra Registro chiamate mostra quale riga del codice verrà eseguita quando il debugger raggiunge il punto di rottura. Il Registro chiamate indica da quale riga si chiama una funzione e, se si chiama la funzione in altre funzioni, l'ordine delle chiamate di funzione e quali righe chiamano altre funzioni. La funzione principale del Registro chiamate è l'ultima chiamata e la prima da effettuare eseguire. Puoi utilizzare il Registro chiamate per verificare se l'ordine delle chiamate di funzione negli script corrisponde al modello mentale delle chiamate di funzione.

Registro chiamate su Studio

Se si dispone di più punti di rottura in diversi script, questi potrebbero mettere in pausa al tempo stesso anche la sessione di test. È possibile passare ai punti di rottura facendo clic sulla freccia accanto al nome dello script nella finestra Registro chiamate. Se fai clic su Ripristina, puoi passare sopra a tutti i punti di rottura che si sono messi in pausa allo stesso tempo.

Registro chiamate con più punti di rottura

Per verificare il codice nella finestra del Registro chiamate durante una sessione di debug:

  1. Se la finestra Ispeziona non è aperta, fai clic su Ispeziona nella scheda Visualizza.

  2. Quando la tua esperienza si interrompe in un punto di rottura, pensa a come ti aspetti che sia l'ordine delle chiamate di funzione in quello script.

    Editore script con due funzioni e un punto di rottura
  3. Il Registro chiamate mostra l'ordine delle chiamate di funzione. Se il punto di rottura si trova all'interno di una funzione, il registro chiamate mostra quale funzione chiama tale funzione, se presente. Il Registro chiamate mostra inoltre il nome e il numero di riga di ciascuna funzione. Fai clic sulla riga affinché una funzione ci salti sopra.

    Fai clic nel Registro chiamate per saltare alla riga
  4. Confronta l'ordine delle chiamate di funzione a cui hai pensato nel passaggio 2 e l'ordine effettivo a partire dal passaggio 3. Se ci sono delle differenze, significa che c'è una differenza tra come ti aspetti che si comporti il codice e come si comporta effettivamente, causando potenziali problemi e bug.

Nella finestra Output

La finestra Output, accessibile dalla scheda Visualizza, visualizza gli errori rilevati da script in esecuzione, messaggi da Roblox Engine, messaggi di log da Logpoints, messaggi da chiamate a print() ed errori da chiamate a warn(). Per maggiori informazioni sulla finestra Output e su come personalizzarla, vedi Output.

Nell'Editore script

Il Debugger è integrato con lo Script Editor. Quando la tua esperienza si interrompe in un punto di rottura in uno script, puoi passare con il mouse sopra al nome di una variabile per visualizzarne il valore. Ad esempio, puoi vedere il valore di una tabella che fai passare come argomento in una chiamata di funzione.

Passa sopra a una variabile con il mouse nell'Editore script per mostrarne il valore

Configurazioni dei punti di rottura

È possibile configurare i punti di rottura solo se vengono soddisfatte determinate condizioni, per stampare un messaggio nella finestra Output e per eseguirlo solo su client o su server. È inoltre possibile combinare queste configurazioni insieme per soddisfare al meglio il debug.

Modifica dei punti di rottura

Puoi modificare la configurazione di un punto di rottura in qualsiasi momento, anche durante le sessioni di test. Se modifichi i punti di rottura durante una sessione di test, le modifiche persistono anche dopo che l'hai terminata. Puoi anche modificare un punto di rottura che interrompe attivamente la sessione di test, ma le modifiche non si applicano fino alla successiva sessione del test.

Per modificare la configurazione di un punto di rottura:

  1. Fai clic con il tasto destro del mouse sul punto di rottura, quindi fai clic su Modifica punto di rottura.

    Fai clic con il tasto destro del mouse per modificare un punto di rottura su Studio
  2. Nella finestra Modifica punto di rottura, configuralo come preferisci.

    Modifica la finestra del punto di rottura su Studio

Condizione, messaggio di registro e opzioni

Per ogni punto di rottura, puoi definirne la Condizione, il Messaggio di registro, Continuare l'esecuzione e il Contesto.

La Condizione è l'espressione che determina l'attivazione o meno del punto di rottura. La condizione è facoltativa. Se la Condizione è vuota, il punto di rottura si attiva sempre. Se la condizione esiste, il punto di rottura si attiva solo se la condizione è vera. Ad esempio, se vuoi che il punto di rottura si attivi solo se la variabile n è uguale a 42, devi impostare la Condizione come n == 42. Le condizioni sono utili per il debug del modo in cui le funzioni operano quando determinate variabili hanno determinati valori o se si desidera interrompere solo in determinate esecuzioni in un ciclo.

Il Messaggio di registro è l'espressione che stampa sulla finestra Output quando la condizione è vera. Il formato del Messaggio di registro è lo stesso dell'argomento di una print() dichiarazione. Ad esempio, definire il Messaggio di registro come "The value of n:", n per stampare lo stesso messaggio come print("The value of n:", n). Puoi aggiungere e togliere i Messaggi di registro senza dover interrompere l'esecuzione, a differenza delle istruzioni di stampa.

L'opzione Continuare esecuzione determina se il punto di rottura mette in pausa lo script se si dovessere attivare. È utile se si desidera registrare valori di variabili o espressioni senza interromperne l'esecuzione. Questa opzione è disattivata in automatico.

Il Contesto di un punto di rottura determina se esso si attiva su Cliente, Server o Modifica. Se il contesto è Cliente, il punto di rottura si attiva negli script lato cliente. Se il contesto è Server, il punto di rottura si attiva negli script lato server. Se il contesto è Modifica, il punto di rottura si attiva quando esegui il debug dei plugin. Se fai clic su Contesto personalizzato, la finestra indica il contesto attuale.

La finestra Modifica punto di rottura mostra il Contesto personalizzato

Punti di rottura e punti di registro condizionali

Studio offre variazioni di punti di rottura denominati per rendere più veloce l'inserimento degli stessi. Per inserire una variazione denominata, fai clic con il tasto destro del mouse sul margine a destra del numero di riga, quindi fai clic sulla variante che vuoi inserire.

Fai clic con il tasto destro del mouse per inserire un punto di rottura

Un Punto di rottura condizionale è un punto di rottura con una Condizione e un'Esecuzione continua disattivate. I Punti di rottura condizionali mettono in pausa lo script solo se una condizione è vera, quindi sono utili per il debug del modo in cui si eseguono le funzioni quando alcune variabili hanno determinati valori. I punti di rottura condizionali utilizzano i valori delle variabili prima dell'esecuzione della riga. Quando inserisci un punto di rottura condizionale, il cursore si focalizza sull'opzione Condizione affinché tu possa impostarla rapidamente.

Un Punto di registro è un punto di rottura con un Messaggio di registro e un'Esecuzione continua attivata. I punti di registro registrano i messaggi sulla finestra Output senza mettere in pausa gli script, utili per il debug dei valori delle variabili. I punti di registro utilizzano i valori delle variabili prima dell'esecuzione della riga. Quando inserisci un punto di registro, il cursore si focalizza sul Messaggio di registro affiché tu lo possa impostare rapidamente.

I punti di registro sono spesso più efficienti per il debug delle variabili rispetto alle variabili print() perché consentono di registrare i messaggi nella finestra Output senza dover interrompere o riavviare la sessione di test attiva. Rispetto alle dichiarazioniprint(), mantengono il codice pulito durante il debug e sono più facili da rimuovere dopo aver finito il debug.

Disattivazione dei punti di rottura

Esistono tanti modi per disattivare e riattivare nuovamente un punto di rottura:

  • Fare clic sull'icona del punto di rottura.
  • Modifica il punto di rottura e attiva/disattiva la casella di controllo Abilitato.
  • Fai clic con il tasto destro del mouse sull'icona del punto di rottura e fai clic su Disattiva o Attiva il punto di rottura.

Eliminazione dei punti di rottura

Per eliminare un punto di rottura, fai clic con il tasto centrale del mouse sulla sua icona. Puoi anche fare clic con il tasto destro del mouse sulla sua icona quindi fare clic su Elimina punto di rottura.

Finestra punti di rottura

La finestra Punti di rottura mostra tutti i punti di rottura presenti nella tua esperienza. Per aprire la finestra dei Punti di rottura, fai clic sulla scheda Visualizza nella parte superiore di Studio, quindi fai clic su Punti di rottura.

Finestra dei punti di rottura su Studio

La finestra Punti di rottura ha le seguenti colonne: senza etichetta, Script, Riga, Riga sorgente, Condizione, Messaggio di registro e Continua esecuzione. Le colonne senza etichetta, Script e Riga vengono sempre visualizzate, ma puoi attivare/disattivare le altre colonne facendo clic sui tre puntini nell'angolo in alto a destra della finestra.

Nella colonna senza etichetta, l'etichetta (x3) indica il numero di punti di rottura presenti sulla stessa riga di codice dove l'icona indica la configurazione del punto di rottura. I punti di rottura sulla stessa riga condividono la stessa Condizione, Messaggio di registro e Continua esecuzione, ma variano nel contesto. Puoi modificare la configurazione di un punto di rottura nella finestra Punti di rottura. Ad esempio, puoi modificare la Condizione di un punto di rottura modificando l'area di testo nella sua colonna Condizione.

Modifica la condizione di un punto di rottura nella finestra punto di rottura

Puoi attivare e disattivare i punti di rottura facendo clic sull'icona del punto di rottura nella colonna Attivato. Puoi inoltre fare clic sui pulsanti seguenti per attivare, disattivare ed eliminare alcuni o tutti i punti di rottura.

PulsanteAzione
Pulsante per disattivare tutti i punti di rotturaDisattiva tutti i punti di rottura. Se viene disattivato qualche punto di rottura, attivali tutti.
Pulsante per eliminare tutti i punti di rotturaElimina tutti i punti di rottura.

Icone punto di rottura

L'icona di un punto di rottura dipende dal fatto che sia attivato, abbia una condizione e abbia un messaggio di registro. Se un punto di rottura ha un messaggio di registro, appare come un punto di registro indipendentemente dal fatto che abbia una condizione.

NomeIconaAttivatoCondizioneMessaggio di registro
Punto di rotturaNoNo
NoNoNo
Punto di rottura condizionaleNo
NoNo
Punto di registroForse
NoForse

Strumenti di debug aggiuntivi

Oltre al debugger, Studio offre strumenti di debug aggiuntivi per risolvere problemi e bug nella tua esperienza.

Barra di comando

La Barra di comando ti consente di eseguire i comandi Luau durante l'esecuzione dell'esperienza. È disponibile su Studio nella scheda Visualizza e sulla Console sviluppatori.

Console sviluppatori

La Console sviluppatori fornisce un'ampia gamma di dettagli tra cui l'output cliente e server, l'utilizzo della memoria, le prestazioni di rete e altro ancora. Per aprire la Console sviluppatori durante il test o la riproduzione di un'esperienza, digita/console sulla chat o premi F9. Per maggiori informazioni, vedi Console sviluppatori.

File di registro

Quando uno script stampa o presenta errori su Studio o nell'app Player, l'app registra il messaggio in un file di registro all'interno del sistema di file locale. Questi file si trovano in luoghi diversi a seconda del sistema operativo:

  • Su Windows, i registri si trovano nella directory %LOCALAPPDATA%\Roblox\logs. Ordina la cartella per data modificata. I nomi dei file di registro iniziano con il formato log_XXXXX. I registri con lo stesso valore XXXXX provengono dalla stessa sessione di Studio.
  • Su macOS, i registri si trovano nella directory ~/Library/Logs/Roblox. Nel Finder, fai clic sul menu Vai, seleziona Vai alla cartella, inserisci quella directory e conferma.