Debug

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

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:

  1. Inserisci i punti di interruzione sulle righe dei codici che vuoi esaminare.

  2. Nella scheda script, fai clic su Gioca o Esegui nella scheda di test per avviare una Sessionedi playtest, anche conosciuta come Sessionedi debug.

    Playtest options in Script tab.
  3. 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.

  4. 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.

  5. 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.

Breakpoint in gutter is a red dot

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.

Active breakpoint in the debugger shows yellow arrow

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.

Debugging tools indicated in Script tab

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.

PulsanteAzioneScorciatoiaDescrizione
Button to step into a line of code 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.
Button to step over a line of code Passare sopra F10Il pulsante Passare sopra sposta il debugger alla prossima riga di codice, non spostandosi nelle funzioni.
Button to step out of a line of code Passare fuori ShiftF11Il 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.

Watch Window with variable values

Per ispezionare il codice nella finestra Guarda:

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

  2. 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.

  3. 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

  4. 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

Call Stack in Studio

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.

Call Stack with multiple breakpoints

Per ispezionare il codice nella finestra Call Stack durante una Sessionedi debugging:

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

  2. 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.

    Script Editor with two functions and one breakpoint
  3. 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.

    Click in Call Stack to jump to line
  4. 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.

Mouseover a variable in Script Editor to show value

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:

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

    Right click to edit a breakpoint in Studio
  2. Nella finestra Modifica punto di interruzione , configura il punto di interruzione come vuoi.

    Edit Breakpoint window in Studio

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

Edit Breakpoint Window shows Custom Context

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.

Right click to insert a breakpoint

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.

Breakpoints window in Studio

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

Edit the Condition of a Breakpoint in the Breakpoints Window

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.

PulsanteAzione
Button to disable all breakpointsDisabilita tutti i punti di interruzione. Se sono disabilitati tutti i punti di interruzione, abilitali tutti/tutte.
Button to delete all breakpointsElimina 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.

NomeIconaAbilitatoCondizioneMessaggio di registro
Punto di interruzioneNoNo
NoNoNo
Punto di interruzione condizionaleNo
NoNo
Punto di registroForse
NoForse

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:

  1. Apri Explorer File .
  2. Navigate to the %LOCALAPPDATA%\Roblox\logs directory.
  3. 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:

  1. Apri Finder .
  2. In the menu bar, select Vai > Vai alla cartella... .
  3. Nella finestra di dialogo, inserisci ~/Library/Logs/Roblox .
  4. Fai doppio clic sul risultato per accedere alla direzione Roblox Logs.
  5. 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:

  1. Connetti il dispositivo iOS a un Mac.
  2. Apri Finder .
  3. Navigate to Utilities and open the Console application.
  4. 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.
  5. 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:

  1. Navigate to Impostazioni 🚀 Sistema 🚀 Opzioni sviluppatore .
  2. Attiva/disattiva Opzioni sviluppatore 3. Su un computer, scarica e installa Android Studio .
  3. In Android Studio, fai clic su Logcat .
  4. Connetti il dispositivo Android al computer per popolare automaticamente Logcat con i registri.