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
12345678910111213package 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!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
What is a breakpoint and how do I set one?
Can you explain the difference between "Step Over" and "Step Into"?
Why did the code return 45 instead of 55?
Awesome!
Completion rate improved to 4.76
Debugger
Scorri per mostrare il menu
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
12345678910111213package 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!