Studio offre molti strumenti di debugging comunemente trovati negli ambienti di sviluppo integrato (IDE). Questi strumenti ti aiutano a risolvere gli errori e ispezionare gli script linea per linea mentre vengono Eseguire. Le informazioni sugli errori vengono visualizzate nella finestra di ispezione, chiamata Stack, Point di interruzione, e 2>Output2> per cui puoi ispezionare.
Workflow generale
Se noti un problema nella tua esperienza o vuoi verificare che funzioni come previsto, puoi debugare il codice relativo all'esperienza come segue:
Inserisci i punti di interruzione sulle righe dei codici che vuoi esaminare.
Nella scheda script, fai clic su Gioca o Esegui nella scheda di test per avviare una Sessionedi playtest, anche conosciuta come Sessionedi debug.
Quando uno script raggiunge un Punto di rottura, la sessione di playtest viene interrotta. Passa attraverso il codice. Ispeziona le Watch, Call Stack e Output finestre per aiutarti a diagnosticare e capire il problema.
Inserisci punti di interruzione aggiuntivi su righe di codice che non sono ancora state eseguite per ispezionare i dati aggiuntivi. Disabilita o elimina i punti di interruzione che non hai più bisogno.
Nella Script tab, fai clic su Stop per terminare la Sessionedi debug.
Ripeti i passaggi precedenti fino a quando non risolvi il problema o non trovi la sua causa principale. Mentre impari il flusso di lavoro generale, puoi configurare i punti di interruzione per interrompere solo se vengono soddisfatte determinate condizioni, per stampare un messaggio nella finestra di uscita e per eseguire solo sul client o sul Server. Per ulteriori informazioni, vedi Configurazioni dei punti di interruzione .
Inserimento dei punti di interruzione
I checkpoint sono punti di controllo che interrompono o "rompono" l'esecuzione dei tuoi script in linee specifiche. Puoi usare i punti di interruzione per ispezionare e debugare la tua esperienza, guarda le variabili e inspecta il call stack. I checkpoint sono uno degli strumenti di debug più efficaci, quindi sono uno degli strumenti di debug più importanti. Puoi inserire un punto di codicein qualsiasi
Per inserire un punto di interruzione standard in una riga di codice, fai clic con il pulsante sinistro del mouse sulla linea di suo codice di riga. Puoi anche fare clic con il pulsante sinistro del mouse sulla linea di punto di interruzione e fare clic su Inserisci punto di interruzione. La punto di interruzione appare come un punto rosso. Per disabilitarlo, fai clic sul punto.
Passare attraverso il codice
Se inserisci un punto di interruzione in una linea in uno script, lo script si ferma prima di eseguire quella linea. Un'icona gialla chiamata "debugger" indica quale linea di codice viene eseguita prima.
Quando lo script si ferma, esegui il seguente codice una riga alla volta facendo clic attraverso di esso con i pulsanti nella Script scheda. I pulsanti appaiono anche nell'angolo in alto a sinistra della finestra Call Stack. Mentre esegui il codice, monitora come la tua esperienza cambia mentre l'esecuzione della linea corrente.
La seguente tabella riassume i tre modi per passare attraverso il codice. Per continuare ad eseguire il tuo codice dopo aver raggiunto un punto di interruzione, fai clic su Riprendi nella scheda Script.
Pulsante | Azione | Scorciatoia | Descrizione |
---|---|---|---|
Passa in | F11 ] | Il pulsante Passa in porta il debugger nel codice della funzione sulla linea corrente. Se non c'è funzione sulla linea corrente, il debugger si sposta sulla linea successiva. | |
Passare sopra | F10 | Il pulsante Passare sopra sposta il debugger alla prossima riga di codice, non spostandosi nelle funzioni. | |
Passare fuori | ShiftF11 | Il pulsante Passo fuori sposta il debugger fuori dalla funzione corrente e alla prossima linea di codice dopo la chiamata della funzione. Se la linea corrente non è all'interno di una funzione, il debugger si sposta alla prossima linea. |
Ispezionando il codice
Quando un punto di interruzione interrompe l'esperienza durante un Test di giocabilità, puoi ispezionare la finestra Guarda, la finestra Chiamata Stack, la finestra Script Editor e la finestra 1> Script Editor1> per trovare informazioni sui valori variabili e le esecuzioni di funzione. Con queste informazioni, puoi trovare la causa根 del problema nella tua esperienza.
Finestra di visualizzazione
La finestra Guarda ha due schede: Variabili e I miei orologi. La 2> finestra Guarda2> mostra informazioni sulle variabili attuali in scala, e la 5> I miei orologi 5> scheda mostra il valore delle variabili o delle espressioni che definisci. Entrambe le schede mostrano informazioni prima che la linea esegua.
La Variables tab ha i seguenti colonne:
- Nome – Il nome dichiarato della variabile.
- Scopo – Lo scopo della variabile: dove può essere "visto" e accessibile, come Local, Global o Upvalue.
- Valore – Il valore corrente della variabile.
- Tipo di dati - Il tipo di dati della variabile.
La Mie Watch scheda ha le seguenti colonne:
- Espressione – L'espressione che vuoi Ispezionare.
- Valore – Il valore corrente dell'espressione.
- Tipo di dati - Il tipo di dati dell'espressione.
Nella scheda Variabili , puoi filtrare lo script delle variabili facendo clic sull'Iconadel filtro. Puoi anche ordinare le righe facendo clic sul nome della colonna per ordinare per. La finestra di sorveglianza fornisce sia le visualizzazioni espandite che chiuse delle tabelle.
Per ispezionare il codice nella finestra Guarda:
Se la finestra Guarda non è aperta, quindi fai clic su Guarda nella scheda Visualizza.
Quando la tua sessione di playtest si ferma a un punto di interruzione, pensa a come ti aspetti che la linea corrente cambi i valori delle variabili in quel script.
Mentre passi attraverso il codice, guarda come la valore delle variabili cambia nella scheda Varie. Se vuoi guardare un'espressione non nella scheda Varie, apri la scheda Mie Orologi. Fai clic su una riga vuota nella colonna Esprimo , quindi digita l'espressione in essa. Se vuoi guardare una variabile nel Editore script, fai doppio clic sul nome della variabile, f
Confronta i valori delle variabili e delle espressioni con quelli che ti aspetti e quelli che vedi nella finestra Guarda. Se c'è una differenza tra come ti aspetti che le variabili cambino e come effettivamente cambiano, allora le variabili o le funzioni che interagiscono con esse potrebbero causare problemi o bug.
Finestra di Stack di Chiamata
La finestra Call Stack mostra quale riga di codice viene eseguita prima quando il debugger raggiunge un punto di interruzione. La finestra Call Stack indica quale riga di codice chiami una funzione e, se chiami la funzione in altre funzioni, l'ordine delle chiamate di funzione e le linee che chiami le altre funzioni. La parte superiore della finestra Call Stack è l'ultima chiamata e la prima a essere eseguita. Pu
Se hai più punti di interruzione in diversi script, potrebbero interrompere la sessione di playtest allo stesso tempo. Puoi saltare ai punti di interruzione facendo clic sulla freccia accanto al nome dello script nella finestra Call Stack. Se fai clic su Resume , allora passi oltre tutti i punti di interruzione che sono stati interrotti allo stesso tempo.
Per ispezionare il codice nella finestra Call Stack durante una Sessionedi debugging:
Se la finestra Call Stack non è aperta, fai clic su Call Stack nella scheda Visualizza.
Quando la tua esperienza si ferma a un punto di interruzione, pensa a come ti aspetti che le chiamate di funzione siano in quel script.
La Call Stack mostra l'ordine delle chiamate di funzione. Se il punto di interruzione è all'interno di una funzione, la Call Stack mostra quale funzione chiama quella funzione, se presente. La Call Stack mostra anche il nome e il numero di riga di ogni funzione. Fai clic sulla riga per un funzione per saltare su di esso.
Confronta l'ordine delle chiamate di funzione che hai pensato in passo 2 e l'ordine reale dal passo 3. Se ci sono differenze, ci sono differenze tra il modo in cui pensi che il codice si comporti e il modo in cui si comporta effettivamente, il che causa potenziali problemi e bug.
Finestra di uscita
La Finestra di uscita, accessibile dalla Visualizza scheda, mostra gli errori catturati dall'esecuzione degli script, i messaggi da Roblox Engine, i messaggi dal log del chiamata, i messaggi dalla chiamata a print() e gli errori dalla chiamata a 2> warn()2> .
Editor del Script
Il debugger è integrato con il Editor di Script . Quando la tua esperienza si ferma a un punto di interruzione in uno script, puoi passare il mouse sul nome di una variabile per visualizzarne il valore. Ad esempio, puoi vedere il valore di una tabella che passi come argomento in una chiamata di funzione.
Configurazioni di Breakpoint
Puoi configurare i punti di interruzione solo se vengono soddisfatte determinate condizioni, per stampare un messaggio nella finestra di output e per eseguire solo sul client o sul Server. Puoi anche mescolare queste configurazioni insieme per adattarti al meglio alle tue esigenze di debug.
Modifica dei punti di interruzione
Puoi modificare la configurazione di un punto di interruzione in qualsiasi momento, tra cui durante le sessioni di playtest. Se modifichi i punti di interruzione durante una Sessionedi playtest, le modifiche persistono anche dopo aver finito. Puoi anche modificare un punto di interruzione che sta attivamente facendo la tua Sessionedi playtest, ma le modifiche non si applicano fino alla prossima Sessionedi playtest.
Per modificare la configurazione di un punto di Punto di rottura:
Fai clic con il pulsante destro del mouse sul punto di interruzione, quindi fai clic su Modifica punto di interruzione .
Nella finestra Modifica punto di interruzione , configura il punto di interruzione come vuoi.
Condizione, messaggio di registro e opzioni
Per ciascun punto di interruzione, puoi impostare la sua condizione, messaggio di registro, continuazione dell'esecuzione e 2>contesto2>.
La condizione è l'espressione che determina se il punto di interruzione si attiva. La condizione è opzionale. Se la condizione è vuota, il punto di interruzione si attiva sempre se la variabile n> vale 42. Se la
Il Messaggio di registro è l'espressione che viene stampata nella finestra di uscita quando la condizione è vera. Il formato del Messaggio di registro è lo stesso dell'argomento per una dichiarazione print() . Ad esempio, imposta il Messaggio di registro come "The value of n:", n per stampare lo stesso messaggio come
L'opzione Continua l'esecuzione determina se il punto di interruzione interrompe lo script se si attiva. È utile se si desidera registrare i valori delle variabili o delle espressioni senza interrompere l'esecuzione. Questa opzione è disabilitata per impostazione predefinita.
Il contesto di un punto di interruzione determina se il punto di interruzione dovrebbe attivarsi sul Cliente, sul Server o sull'Edit. Se il contesto è Cliente, allora il punto di interruzione si attiva negli script del lato client. Se il contesto è Server, allora il punto di interruzione si attiva negli script del lato server. Se il contesto è Modifica, allora il punto di interruzione si attiva quando hai debugger plugin. Se fai clic su Personal
Punti di interruzione condizionali e punti di registrazione
Studio offre variazioni nominate dei punti di interruzione per rendere l'inserimento dei punti di interruzione più veloce. Per inserire una variazione nomata, fai clic con il pulsante destro del mouse sulla margherita a destra del suo numero di riga, quindi fai clic sulla variante che vuoi inserire.
Un Conditional Breakpoint è un punto di interruzione con una condizione e continuazione dell'esecuzione disabilitati. I punti di interruzione condizionali interrompono il tuo script solo se una condizione è vera, quindi sono utili per il debugging di come le funzioni vengono eseguite quando vengono visualizzate alcune variabili
Un Logpoint è un punto di interruzione con un Messaggio di log e Continuous Execution abilitati. I messaggi di log dei punti di interruzione vengono inviati alla finestra di uscita senza interrompere gli script, quindi sono utili per il debugging dei valori variabili. I punti di interruzione usano i valori delle variabili prima che la linea esegua.
I punti di registro sono spesso più efficienti per il debug delle variabili rispetto alle print() dichiarazioni perché ti consentono di registrare i messaggi nella finestra di uscita senza dover interrompere o riavviare la Sessionedi playtest attiva. Rispetto alle dichiarazioni print(), mantengono il tuo codice pulito mentre debug e sono più facili da rimuovere dopo aver finito di debug.
Disattivare i punti di interruzione
Ci sono molti modi per disabilitare e riattivare un punto di interruzione:
- Fai clic sull'icona del punto di interruzione.
- Modifica il punto di interruzione e attiva la casella di controllo Abilitato.
- Fai clic con il pulsante destro del mouse sull'icona del punto di interruzione e fai clic su Disabilita punto di interruzione o Abilita punto di interruzione.
Eliminare Punti Interruzione
Per eliminare un punto di Punto di rottura, fare clic con il pulsante centrale del mouse sull'Icona. Puoi anche fare clic con il pulsante destro del mouse e fare clic su Elimina punto di interruzione .
Finestra dei punti di interruzione
La finestra Breakpoint mostra tutti i punti di interruzione nella tua esperienza. Per aprire la finestra Breakpoint, fai clic sulla scheda Visualizza nella parte superiore di Studio, quindi fai clic su Breakpoint.
La finestra Breakpoints ha le seguenti colonne: uniche etichettate, Script, Linea, Clausola di condizione, Messaggio di registro e Continua esecuzione. Le colonne non etichettate, Script e Linea, vengono sempre visualizzate, ma puoi attivare/disattivare le altre colonne facendo clic sui tre punti nell'angolo in alto a destra della finestra.
Nella colonna non contrassegnata, il (x3) label indica il numero di breakpoint sulla stessa linea di codice, e l'icona indica la configurazione del breakpoint. I breakpoint sulla stessa linea condividono la stessa condizione, messaggio di registro e continuità di esecuzione, ma variano in contesto. Puoi modificare la configurazione di un breakpoint nella finestra Breakpoint. Ad esempio, puoi modificare la condizione di un breakpoint modificando la textarea nella sua colonna di
Puoi abilitare e disabilitare i punti di interruzione facendo clic sull'icona del punto di interruzione nella colonna Abilitati . Puoi anche fare clic sui seguenti pulsanti per abilitare, Disattivaree eliminare alcuni o tutti i punti di interruzione.
Pulsante | Azione |
---|---|
Disabilita tutti i punti di interruzione. Se sono disabilitati tutti i punti di interruzione, abilitali tutti/tutte. | |
Elimina tutti i punti di interruzione. |
I icone di interruzione
L'icona di un punto di interruzione dipende dal fatto che è abilitato, ha una condizione e ha un messaggio di Messaggio. Se un punto di interruzione ha un Messaggiodi registro, allora appare come punto di interruzione indipendentemente dal fatto che abbia una condizione.
Nome | Icona | Abilitato | Condizione | Messaggio di registro |
---|---|---|---|---|
Punto di interruzione | Sì | No | No | |
No | No | No | ||
Punto di interruzione condizionale | Sì | Sì | No | |
No | Sì | No | ||
Punto di registro | Sì | Forse | Sì | |
No | Forse | Sì |
Strumenti di debug aggiuntivi
Oltre al debugger, Studio offre strumenti di debug aggiuntivi per aiutarti a risolvere problemi e bug nella tua esperienza.
Barra dei comandi
La Barra Comandi ti consente di eseguire i comandi Luau mentre l'esperienza è in esecuzione. È disponibile in Studio dalla scheda Visualizza e nella Console del sviluppatore.
Console del sviluppatore
La Console degli Sviluppatori fornisce un'ampia gamma di dettagli, tra cui l'Outputdel client e del server, l'utilizzo della memoria, le Prestazionedi rete e altro ancora. Per aprire la /console mentre si testa o si gioca un'esperienza, digita /console nel chat o premi 1> F91> . Per ulteriori informazioni, vedi 4>Console degli Sviluppatori
File di registro
Quando uno script inizia a stampare o a mostrare errori in Studio o nell'applicazionePlayer, l'app registra il messaggio in un file di registro nel sistema di file locale. Questi file sono situati in luoghi diversi a seconda del sistema operativo.
Windows
Per accedere ai file di registro su Windows:
- Apri Explorer File .
- Navigate to the %LOCALAPPDATA%\Roblox\logs directory.
- Fai doppio clic su un registro per aprirlo. I registri con lo stesso valore XXXXX sono dalla stessa SessioneStudio.
Mac
Per accedere ai file di registro su Mac:
- Apri Finder .
- In the menu bar, select Vai > Vai alla cartella... .
- Nella finestra di dialogo, inserisci ~/Library/Logs/Roblox .
- Fai doppio clic sul risultato per accedere alla direzione Roblox Logs.
- All'interno della cartella, fai doppio clic su un registro per aprirlo.
iOS
Puoi raccogliere i registri iOS utilizzando un Mac o utilizzando un DispositivoiOS.
Per accedere ai file di registro iOS su un Mac:
- Connetti il dispositivo iOS a un Mac.
- Apri Finder .
- Navigate to Utilities and open the Console application.
- Per popolare i registri in tempo reale nell'applicazione Console, seleziona il dispositivo iOS dalla barra laterale, fai clic sul pulsante Avvia e riproduci l'errore sull' DispositivoiOS.
- Per popolare i registri archiviati nell'applicazione Console, esegui sudo log collect --device-name "[iOS Device Name]" in the Terminal . Assicurati che non ci siano apostropfi nel nome del Dispositivoo potresti ottenere un errore durante l'esecuzione del comando.
Android
Per accedere ai file di registro su Android:
- Navigate to Impostazioni 🚀 Sistema 🚀 Opzioni sviluppatore .
- Attiva/disattiva Opzioni sviluppatore 3. Su un computer, scarica e installa Android Studio .
- In Android Studio, fai clic su Logcat .
- Connetti il dispositivo Android al computer per popolare automaticamente Logcat con i registri.