Esaminare l'approccio del debugger per l'analisi del codice
- 5 minuti
Ogni sviluppatore deve gestire i bug del codice, è parte del lavoro degli sviluppatori. A volte è possibile individuare rapidamente i bug. Dopo tutto, si è scritto il codice e trovare e risolvere rapidamente un problema è la cosa migliore. Inevitabilmente, però, ci saranno momenti in cui si deve cercare un bug che non è così facile da individuare.
Processo di debug del codice
Quando si nota un bug nel codice, si può essere tentati di provare un approccio diretto, ad esempio, un'analisi rapida del punto in cui si pensa che si trovi il problema. Se si ottiene il risultato desiderato nei primi 30 secondi, perfetto, ma è consigliabile non dedicare più tempo a questo approccio. Non continuare ad esaminare posizioni diverse nel codice. Non dedicare tempo agli approcci seguenti:
- Lettura del codice (ancora una volta) sperando che questa volta il problema risulti evidente.
- Distribuzione nel codice alcuni messaggi
Console.WriteLine("here")per tenere traccia dell'avanzamento nell'app. - Riesecuzione dell'app con dati diversi. Sperare che l'individuazione degli elementi che funzionano consenta comprendere quali sono gli elementi che non funzionano.
È possibile che questi metodi abbiano consentito di ottenere risultati più o meno positivi, ma non bisogna illudersi. C'è una soluzione migliore.
L'approccio che comunemente è considerato più efficace è l'uso di un debugger. Ma cos'è esattamente un debugger?
Un debugger è uno strumento software usato per osservare e controllare il flusso di esecuzione del programma con un approccio analitico. I debugger consentono di isolare la causa di un bug e di risolverlo. Un debugger si connette al codice usando uno dei due approcci seguenti:
- Ospitando il programma nel proprio processo di esecuzione.
- Procedendo all'esecuzione come processo separato collegato al programma in esecuzione.
Sono disponibili debugger di diversi tipi. Alcuni funzionano direttamente dalla riga di comando, mentre altri sono dotati di un'interfaccia utente grafica. Visual Studio Code integra gli strumenti del debugger nell'interfaccia utente.
Perché usare un debugger
Se non si esegue il codice tramite un debugger, significa che probabilmente non si sa esattamente cosa sta accadendo nell'applicazione in fase di esecuzione. Il vantaggio principale dell'uso di un debugger è che consente di controllare il programma in esecuzione. È possibile seguire l'esecuzione del programma una riga di codice alla volta. Questo approccio riduce al minimo la possibilità di sbagliare.
Visual Studio Code supporta debugger di codice che consentono di osservare il codice durante l'esecuzione. L'immagine seguente mostra un'applicazione in esecuzione, con esecuzione sospesa sulla riga di codice evidenziata. Il lato destro della schermata mostra il codice del programma, mentre il lato sinistro mostra lo stato corrente delle variabili.

Ogni debugger dispone di un set di funzionalità specifico. Le due funzionalità più importanti presenti in quasi tutti i debugger sono:
Controllo dell'esecuzione del programma. È possibile sospendere il programma ed eseguirlo un'istruzione alla volta, in modo da vedere quale codice viene eseguito e in che modo influisce sullo stato del programma.
Osservazione dello stato del tuo programma. È ad esempio possibile esaminare il valore delle variabili e i parametri delle funzioni in qualsiasi momento durante l'esecuzione del codice.
La padronanza dell'uso di un debugger di codice è una competenza importante. Sfortunatamente, è una competenza che spesso gli sviluppatori trascurano. L'uso efficace di un debugger consente di essere più efficienti durante la ricerca di bug nel codice. I debugger permettono inoltre di capire il funzionamento di un programma.
Riepilogo
Ecco i concetti più importanti di questa unità da ricordare:
- Il debug del codice è una competenza fondamentale nel processo di sviluppo software che ogni sviluppatore apprende.
- L'approccio migliore per il debug delle applicazioni consiste nell'usare un debugger, non nel rileggere cinque volte il codice o aggiungere istruzioni
console.WriteLine()nel codice. - I debugger consentono di sospendere l'applicazione, analizzare il codice una riga alla volta e osservare lo stato delle variabili e dei parametri di funzione.