1. Insetto

I programmatori hanno il loro gergo, anche se molti lo considerano un gergo tecnico. In ogni caso, non puoi evitare di conoscerlo. Devi immergerti nei dettagli. Quindi tuffiamoci dentro.

Una delle prime parole che imparerai a conoscere è " bug ", cioè un insetto . Nel contesto dello sviluppo del software, questa parola indica un errore in un programma, un'istanza del programma che fa qualcosa di sbagliato o non del tutto corretto. O semplicemente funziona in modo strano.

Ma se un programmatore pensa che il programma, nonostante il suo strano comportamento, stia facendo esattamente quello che dovrebbe, allora di solito dichiara qualcosa come "non è un bug, è una caratteristica". Il che ha generato un sacco di meme su Internet.

In generale, ci può essere un numero qualsiasi di motivi per un difetto del software: qualsiasi cosa, da errori nella logica del programma, errori di battitura e architettura del programma errata, fino a problemi nel compilatore. In ogni caso, i programmatori devono correggere sia i veri bug che qualsiasi altra "mancanza" nei loro programmi.

La storia della parola "insetto"

La versione più comune dell'origine della parola "insetto" è una specie di leggenda.

Nel settembre 1945, gli scienziati dell'Università di Harvard stavano testando uno dei primi computer, il Mark II. Il computer non funzionava correttamente e, mentre controllavano tutte le schede, trovarono una falena incastrata tra i contatti di un relè elettromeccanico.

L'insetto estratto è stato registrato in un registro tecnico, accompagnato da questa iscrizione: "Primo caso effettivo di insetto trovato".

Si ritiene che questa storia divertente sia l'inizio dell'uso della parola " bug " per indicare un errore, e la parola " debug " è diventata sinonimo di eliminazione dei bug.


2. Debug del programma

Per correggere i bug nei loro programmi, i programmatori usano programmi speciali chiamati debugger . Alcuni di questi programmi sanno persino come eseguire il debug del codice macchina.

I programmatori Java utilizzano gli IDE per il debug dei loro programmi. Come IntelliJ IDEA, Eclipse e NetBeans. IntelliJ IDEA è di gran lunga l'IDE più potente, quindi esamineremo il processo di debug usandolo come esempio.

IntelliJ IDEA può eseguire il programma in due modalità:

Modalità di esecuzione Icona della barra degli strumenti Tasti di scelta rapida
Esecuzione normale Shift+F10
Avvia in modalità di debug Shift+F9

Hai già familiarità con l'esecuzione normale: il programma si avvia, viene eseguito ed esce. Ma la modalità debug ha molte sorprese in serbo per te.

Modalità di debug

La modalità di debug ti consente di seguire passo dopo passo l'intero programma. O più precisamente, ti consente di spostarti riga per riga . Inoltre, puoi osservare i valori delle variabili in ogni fase del programma (dopo l'esecuzione di ogni riga di codice). E puoi anche cambiare i loro valori!

Per acquisire anche una minima conoscenza del debug di un programma, devi imparare tre cose:

  • Punti di interruzione
  • Esecuzione passo dopo passo
  • Controllo del valore delle variabili

3. Punti di interruzione

L'IDE ti consente di inserire marcatori speciali chiamati punti di interruzione nel tuo codice. Ogni volta che un programma in esecuzione in modalità debug raggiunge una riga contrassegnata da un punto di interruzione , l'esecuzione verrà messa in pausa.

Per inserire un punto di interruzione su una riga specifica, è sufficiente fare clic a sinistra della riga in IDEA. Esempio:

Punti di interruzione IntelliJ IDEA

La linea sarà contrassegnata da un punto di interruzione e IntelliJ IDEA lo evidenzierà in rosso:

contrassegnato da un punto di interruzione

Un secondo clic del mouse sul riquadro a sinistra del codice rimuoverà il punto di interruzione .

Un punto di interruzione può anche essere posizionato sulla riga corrente semplicemente utilizzando la combinazione di tasti di scelta rapida Ctrl+ F8. Premendo di nuovo Ctrl+ F8su una riga che ha già un punto di interruzione lo cancellerà.


4. Avviare il programma in modalità debug

Se hai almeno un punto di interruzione nel tuo programma, puoi eseguire il programma in modalità debug premendo Shift+ F9o facendo clic sull'icona "bug".

Dopo l'avvio in modalità debug, il programma viene eseguito normalmente. Ma non appena raggiunge una riga di codice contrassegnata da un breakpoint , si fermerà. Esempio:

Avviare il programma in modalità debug

Nella metà superiore dello screenshot, vedi il codice del programma con due punti di interruzione. L'esecuzione del programma si è fermata alla riga 5, contrassegnata da una linea blu. La riga 5 non è stata ancora eseguita: non è stato ancora inviato nulla alla console.

Nella metà inferiore dello schermo vengono visualizzati i riquadri di debug: il riquadro Debugger , il riquadro Console  e una serie di pulsanti per la modalità di debug.

È possibile riattivare il programma (ovvero continuare l'esecuzione) premendo il pulsante Riprendi programma nel riquadro in basso a sinistra (o premere F9).

Avviare il programma in modalità debug 3

Se si preme questo pulsante (o F9), il programma continuerà a essere eseguito finché non incontra il punto di interruzione successivo o termina. Ecco cosa vediamo dopo aver fatto clic sul pulsante:

Avviare il programma in modalità debug 4

Il programma si è fermato al secondo punto di interruzione e le parole Helloe andpossono essere visualizzate nella console. Questo è un segno che abbiamo eseguito solo due delle tre righe che visualizzano l'output sullo schermo.


5. Esecuzione passo dopo passo

Se il tuo programma è in esecuzione in modalità debug, puoi anche eseguirlo: un passaggio è una riga . Ci sono due tasti di scelta rapida per l'esecuzione passo-passo: F7e F8: ognuno provoca l'esecuzione della riga di codice corrente. Ma prima devi ancora fermare il tuo programma con un breakpoint .

Se vuoi eseguire il tuo programma riga per riga, devi inserire un punto di interruzione all'inizio del main()metodo ed eseguirlo in modalità debug.

Quando il programma si ferma, puoi iniziare a eseguirlo riga per riga. Una pressione del F8tasto esegue una riga.

Ecco come appare il nostro programma dopo che si è fermato e abbiamo premuto il F8tasto una volta:

Avviare il programma in modalità debug.  Esecuzione passo dopo passo

La prima riga del metodo principale è già stata eseguita e la riga corrente è la seconda riga. Puoi anche vedere nella parte inferiore dello screenshot che la parola Helloè già visualizzata sullo schermo.


6. Esecuzione passo-passo con l'accesso ai metodi

Se hai scritto i tuoi metodi nel programma e vuoi che l'esecuzione avvenga all'interno dei tuoi metodi in modalità debug, cioè vuoi "entrare nel metodo", allora devi premere invece F7di F8.

Supponiamo che tu esegua il programma e ti trovi ora fermo alla riga 4. Se premi F8, IDEA eseguirà semplicemente la quarta riga e passerà alla quinta.

Esecuzione passo-passo con l'accesso ai metodi 2

Ma se premi F7, IDEA entrerà nel main2()metodo:

Esecuzione passo-passo con passaggio ai metodi 3

È molto semplice. Se non ti interessa davvero cosa succede all'interno di un metodo o come, allora premi F8. Se è importante, premi F7e scorri tutto il suo codice.