Contenuti del Corso
Java OOP
Java OOP
Debugger
Cos'è un debugger?
Un debugger è uno strumento che aiuta a eseguire passo passo il codice. È possibile mettere in pausa l'esecuzione del codice in un determinato punto e avviare la modalità di debug per osservare come funziona il programma. Per fare ciò, è necessario impostare un marcatore (breakpoint) sulla riga in cui si desidera interrompere l'esecuzione.
Abbiamo un codice che dovrebbe calcolare la somma dei numeri da uno a dieci, inclusi. Il risultato atteso è 55
, ma otteniamo come risposta 45
. Impostiamo un breakpoint all'inizio del ciclo per capire perché la risposta non corrisponde. Per farlo, è necessario cliccare con il tasto sinistro del mouse sul numero della riga, dove apparirà un marcatore rosso.
Ecco il codice dallo screenshot, riscritto per una migliore leggibilità e chiarezza:
Main.java
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int result = 0; for(int i = 0; i < 10; i++) { result += 1; System.out.println(result); } } }
Strumenti all'interno della modalità di debug
Esaminiamo brevemente come lavorare con il debugger e quali strumenti sono disponibili al suo interno.
Step Over: Con questo pulsante, è possibile continuare l'esecuzione del codice una riga alla volta. Quando viene premuto, il debugger esegue la riga corrente e passa a quella successiva, fermandosi nuovamente;
Step Into: Con questo pulsante, è possibile entrare nell'esecuzione di un metodo. Nel nostro esempio non è presente alcun metodo, ma se ci fosse, sarebbe possibile entrarvi e osservare cosa accade al suo interno;
Step Out: Questo pulsante è l'opposto del precedente. Permette di uscire dall'esecuzione di un metodo o di un ciclo;
È possibile visualizzare i valori delle variabili nella finestra in basso o accanto a queste variabili. Si può chiaramente vedere il valore della variabile
result
, che inizialmente è zero.
Iterazione attraverso il codice
Per iterare, cliccare sul pulsante "Step Over". Si entra nel ciclo for
, e compare il valore della variabile i
, che viene creata all'interno del ciclo for
. Inizialmente, questa variabile è impostata a zero.
Successivamente, cliccare più volte su "Step Over" per completare un'iterazione e passare alla console per verificare se qualcosa viene stampato a schermo. Si può osservare che la variabile i
è aumentata di 1
, e "0" è stato visualizzato a schermo, poiché sia la variabile result
sia la variabile i
erano inizialmente impostate a zero. 0 + 0 = 0
-> questo è ciò che è stato visualizzato a schermo.
Saltiamo le iterazioni di stampa degli altri numeri sulla console e andiamo alla fine. È qui che si può osservare l'errore principale nel nostro ciclo. È necessario visualizzare la somma dei numeri da 0 a 10 inclusi, ma non è stato incluso il 10. Pertanto, quando si vede che i = 9
e quando viene incrementato a 10
, si esce dal ciclo poiché 10 !< 10
(10 non è minore di 10).
Per risolvere questo problema, è necessario modificare la condizione in i <= 10
. In questo modo si otterrà il risultato corretto.
In sostanza, si è premuto più volte il pulsante "Step Over", arrivando così alla comprensione dell'errore nel ciclo e alla successiva correzione.
Nota
Ho mostrato solo gli strumenti di base del debugger. Per imparare a usarli, è necessario esercitarsi autonomamente. Puoi scrivere un programma simile e verificare in modo indipendente come funziona tutto. Il debugger è uno strumento molto utile perché aiuta a individuare errori e bug nel codice.
1. Qual è lo scopo principale di un debugger?
2. Cosa permette di fare un breakpoint in un debugger?
3. Cosa fa il pulsante "Step Over" del debugger?
Grazie per i tuoi commenti!