Il debug

Nella programmazione informatica il debug è l'attività di ricerca e correzione degli errori (bug) in un programma.

Perché si chiama bug? Il significato del termine inglese "bug" ( insetto ) in informatica risale ai primi anni '50. In quegli anni i primi elaboratori erano macchine di grandi dimensioni, grandi come stanze, che funzionavano con componenti elettromeccaniche. In queste architetture hardware il malfunzionamento del sistema poteva causare anche dalla presenza di un insetto sopra qualche componente interno. Il "debug" ( disinfestazione ) era la ricerca e la rimozione dell'insetto. Per questa ragione ancora oggi gli errori informatici sono detti bug.

La differenza tra debug e compilazione

La compilazione è la trasformazione del codice sorgente di un programma in un file eseguibile.

Un programma compilato non ha errori di sintassi ed è formalmente corretto.

esempio di compilazione del sorgente in oggetto

Tuttavia, anche un programma compilato potrebbe contenere degli errori che si verificano soltanto in determinati eventi o istanze.

Pertanto, la sola compilazione di un programma non esclude che ci siano degli errori nel codice.

Il debug viene eseguito per individuare gli errori durante l'esecuzione di un programma.

Può trattarsi sia di un programma compilato che interpretato.

Come funziona il debug

L'attività di debugging viene svolta seguendo il flusso del programma in esecuzione ( tracing ).

In ogni riga di codice il programmatore visualizza in tempo reale le operazioni compiute dalle istruzioni e i valori registrati nelle variabili.

In questo modo il developer può controllare che tutto funzioni correttamente o individuare la causa di un malfunzionamento.

Per rendere più semplici queste operazioni, si utilizzano dei software o tool appositi detti debugger.

Ogni linguaggio di programmazione ha un proprio debugger.

Nota. Non esiste un debugger valido per tutti i linguaggi di programmazione, perché ogni linguaggio ha una propria sintassi e grammatica. Il debugger esegue il codice sorgente "step by step". Pertanto, il debugger deve conoscere le regole del linguaggio come il compilatore.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base
  1. La programmazione
  2. Gli algoritmi
  3. Il linguaggio macchina
  4. Cos'è uno pseudocodice
  5. I programmi informatici
  6. Le variabili
  7. Gli array
  8. Le espressioni
  9. Le strutture di controllo
  10. Le routine
  11. Le funzioni