Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Pannello di debug

Molti degli strumenti di debug di Godot, incluso il debugger, si trovano nel pannello del debugger nella parte inferiore dello schermo. Clicca su Debugger per aprirlo.

../../../_images/overview_debugger.webp

Il pannello del debugger è suddiviso in diverse schede, ognuna delle quali si concentra su un'attività specifica.

Analisi dello stack

La scheda Analisi dello stack si apre automaticamente quando il compilatore di GDScript raggiunge un punto d'interruzione nel codice.

Fornisce una stack trace, informazioni sullo stato dell'oggetto e pulsanti per controllare l'esecuzione del programma. Quando il debugger si ferma su un punto d'interruzione, una freccia triangolare verde è visibile nella barra laterale dell'editor di script. Questa freccia indica la riga di codice su cui il debugger si è fermato.

Suggerimento

È possibile creare un punto d'interruzione cliccando sulla barra a sinistra dell'editor di script (a sinistra dei numeri di riga). Passando il mouse su questa barra, apparirà un punto rosso trasparente, che diventerà opaco dopo aver inserito il punto d'interruzione cliccandoci sopra. Cliccando nuovamente sul punto rosso, il punto d'interruzione verrà rimosso. I punti d'interruzione creati in questo modo sono mantenuti anche dopo il riavvio dell'editor, anche se lo script non è stato salvato all'uscita dall'editor.

È anche possibile utilizzare la parola chiave breakpoint in GDScript per creare un punto d'interruzione memorizzato nello script stesso. A differenza dei punti d'interruzione creati cliccando nella barra, questo punto d'interruzione basato su una parola chiave è persistente su diverse macchine quando si utilizza il controllo versione.

È possibile utilizzare i pulsanti nell'angolo superiore destro per:

  • Ignora tutti i punti d'interruzione. Così potrai salvare i punti d'interruzione per le future sessioni di debug.

  • Copia il messaggio attuale di errore.

  • Passare dentro il codice. Questo pulsante va alla prossima riga di codice e, se è una funzione, passa attraverso la funzione riga per riga.

  • Passa per il codice. Questo pulsante va alla prossima riga di codice, ma non passa attraverso le funzioni riga per riga.

  • Metti in pausa. Questo pulsante mette in pausa l'esecuzione del gioco.

  • Continua. Questo pulsante riprende il gioco dopo un punto d'interruzione o una pausa.

Nota

Utilizzare il debugger e i punti d'interruzione negli script strumento (tool) non è attualmente supportato. I punti d'interruzione inseriti nell'editor di script o tramite la parola chiave breakpoint sono ignorati. È possibile invece utilizzare le istruzioni print per visualizzare il contenuto delle variabili.

Errori

Qui sono stampati i messaggi di errore e di avviso durante l'esecuzione del gioco.

È possibile disabilitare avvisi specifici in Impostazioni del progetto > Debug > GDScript.

Valutatore

Questa scheda contiene un valutatore di espressioni, noto anche come REPL. È un complemento più potente all'albero di variabili nello stack disponibile nella scheda Analisi dello stack.

Quando il progetto viene interrotto nel debugger (a causa di un punto d'interruzione o di un errore di script), è possibile inserire un'espressione nel campo di testo in alto. Se il progetto è in esecuzione, il campo dell'espressione non sarà modificabile, quindi sarà necessario impostare prima un punto d'interruzione. Le espressioni possono persistere tra le esecuzioni deselezionando Svuota all'avvio, sebbene andranno perse alla chiusura dell'editor.

Le espressioni sono valutate utilizzando il linguaggio di espressioni di Godot, che consente di effettuare operazioni aritmetiche e chiamare alcune funzioni all'interno dell'espressione. Le espressioni possono fare riferimento a variabili membro o variabili locali nello stesso ambito della riga in cui si trova il punto d'interruzione. È anche possibile inserire valori costanti, il che lo rende utilizzabile come una calcolatrice integrata.

Considera lo script seguente:

var counter = 0

func _process(delta):
    counter += 1
    if counter == 5:
        var text = "Some text"
        breakpoint
    elif counter >= 6:
        var other_text = "Some other text"
        breakpoint

Se il debugger si interrompe sulla prima riga contenente breakpoint, le seguenti espressioni restituiscono valori diversi da null:

  • Espressione costante: 2 * PI + 5

  • Variabile membro: counter, counter ** 2, sqrt(counter)

  • Variabile locale o parametro di funzione: delta, text, text.to_upper()

Se il debugger si interrompe sulla seconda riga contenente breakpoint, le seguenti espressioni restituiscono valori diversi da null:

  • Espressione costante: 2 * PI + 5

  • Variabile membro: counter, counter ** 2, sqrt(counter)

  • Variabile locale o parametro di funzione: delta, other_text, other_text.to_upper()

Profilatore

Il profiler serve per esaminare quale codice è in esecuzione durante l'uso del progetto, e come influisce sulle prestazioni.

Vedi anche

Una spiegazione dettagliata su come utilizzare il profiler è disponibile nella pagina dedicata Il Profiler.

Profiler visivo

Il profiler visivo serve per monitorare cosa impiega più tempo durante il rendering di un frame, rispettivamente sulla CPU e sulla GPU. Ciò consente di individuare le potenziali cause di colli di bottiglia sulla CPU e GPU, causati dal rendering.

Avvertimento

Il profiler visivo misura soltanto il tempo impiegato sulla CPU per le attività di rendering, come l'esecuzione delle chiamate di disegno. Il Visual Profiler non include il tempo impiegato sulla CPU per altre attività come lo scripting e la fisica. Utilizza la scheda Profiler standard per monitorare le attività della CPU che non riguardano il rendering.

Per utilizzare il profiler visivo, esegui il progetto, passa alla scheda Visual Profiler nel pannello inferiore Debugger, poi clicca su Avvia:

Scheda Profile visivo dopo aver cliccato su Avvia, atteso per qualche secondo e poi cliccando su Ferma

Scheda Profile visivo dopo aver cliccato su Avvia, atteso per qualche secondo e poi cliccando su Ferma

Suggerimento

È inoltre possibile selezionare Avvio automatico, che farà avviare automaticamente il profiler visivo alla prossima esecuzione del progetto. Si noti che lo stato della casella di spunta Avvio automatico non viene preservato tra le sessioni dell'editor.

Vedrai comparire categorie e risultati durante l'esecuzione del profiler. Appariranno anche linee nei grafici, con il grafico a sinistra relativo alla CPU e il grafico a destra relativo alla GPU.

Clicca su Ferma per terminare la profilazione, il che manterrà i risultati visibili ma bloccati sul posto. I risultati rimarranno visibili anche dopo l'arresto del progetto in esecuzione, ma non dopo l'uscita dall'editor.

Clicca sulle categorie dei risultati a sinistra per evidenziarle nei grafici della CPU e della GPU a destra. Puoi anche clicca sul grafico per spostare il cursore su un numero di frame specifico ed evidenziare il tipo di dati selezionato nelle categorie dei risultati a sinistra.

È possibile passare la visualizzazione del risultato tra un valore temporale (in millisecondi per fotogramma) o una percentuale del tempo di frame di destinazione. L'impostazione dell'editor debugger/profiler_target_fps controlla il valore del tempo di frame di destinazione in base agli FPS specificati.

Se avvengono picchi di frame rate durante la profilazione, il grafico potrebbe risultare non correttamente scalato. Disabilitare Adatta alla cornice così da ingrandire il grafico sulla porzione contenente 60 FPS e oltre.

Nota

Ricorda che i risultati del profiler visivo possono variare notevolmente in base alla risoluzione della viewport, che è determinata dalle dimensioni della finestra se si usano le modalità di stiramento disabled o canvas_items .

Quando si confrontano i risultati di diverse esecuzioni, è bene assicurarsi di utilizzare le stesse dimensioni di viewport per tutte le esecuzioni.

Il profiler visivo è supportato con qualsiasi metodo di rendering (Forward+, Mobile o Compatibilità), ma le categorie segnalate variano a seconda del metodo di rendering attuale e delle funzionalità grafiche abilitate. Ad esempio, quando si utilizza Forward+, una scena 2D semplice con luci che proiettano ombre mostrerà le seguenti categorie:

Risultati di esempio da una scena 2D nel profile visivo

Risultati di esempio da una scena 2D nel profile visivo

Per fare un altro esempio con Forward+, una scena 3D con luci che proiettano ombre e vari effetti abilitati mostrerà le seguenti categorie abilitate:

Risultati di esempio da una scena 3D nel profile visivo

Risultati di esempio da una scena 3D nel profile visivo

Nota come nell'esempio 3D, molte delle categorie abbiano (Parallel) aggiunto al loro nome. Questo suggerisce che più attività siano eseguite in parallelo sulla GPU. In genere, significa che disabilitare solo una delle funzionalità coinvolte non migliorerà le prestazioni quanto previsto, poiché l'altra attività si deve comunque eseguire in sequenza.

Nota

Il profile visivo non è supportato quando si utilizza il renderer Compatibilità su macOS, a causa di limitazioni della piattaforma.

Profiler di rete

Il profiler di rete contiene un elenco di tutti i nodi che comunicano tramite l'API multigiocatore e, per ciascuno di essi, alcuni contatori sul numero di interazioni di rete in entrata e in uscita. Include anche un indicatore di larghezza di banda che mostra l'utilizzo totale della larghezza di banda in un determinato momento.

Nota

La misura della larghezza di banda non tiene conto del sistema di compressione dell'API Multiplayer di alto livello. Significa che cambiare l'algoritmo di compressione utilizzato non influirà sulla misura della larghezza di banda.

Monitor

I monitor mostrano grafici relativi a diversi aspetti del gioco in esecuzione, come gli FPS, l'utilizzo della memoria, il numero di nodi in una scena e altro ancora. Tutti i monitor tengono traccia automaticamente delle statistiche, quindi anche se un monitor non è aperto durante l'esecuzione del gioco, è possibile aprirlo in seguito e vedere come sono cambiati i valori.

Vedi anche

Oltre ai monitor di prestazioni predefiniti, è possibile creare anche monitor di prestazioni personalizzati per tenere traccia di valori arbitrari nel progetto.

RAM Video

La scheda RAM video mostra l'utilizzo della RAM video dal gioco durante l'esecuzione. Fornisce un elenco di tutte le risorse che utilizzano la RAM video, indicando il percorso della risorsa, il suo tipo, il suo formato e quanta RAM video sta utilizzando. La totale di RAM video utilizzata è indicata in alto a destra del pannello.

../../../_images/video_ram.png

Vari

La scheda Vari contiene strumenti per identificare i nodi controllo su cui si può cliccare durante l'esecuzione:

  • Controllo cliccato indica dove si trova il nodo cliccato nell'albero di scene.

  • Tipo di controllo cliccato indica il tipo del nodo cliccato.