Per verificare il funzionamento logico delle applicazioni, in fase di debug, risulta molto utile seguirne l'esecuzione passo passo. Visual Studio permette questo tipo di analisi mostrando ad ogni step, lo stato di oggetti e variabili.
Possiamo indicare i punti in cui vogliamo interrompere l'esecuzione della applicazione inserendo nel codice i cosiddetti breakpoint. Un breakpoint viene visualizzato con una linea rossa in corrispondenza della riga di codice sulla quale si blocca il programma e si può aggiungere o togliere cliccando sulla barra a sinistra dello spazio di editing o premendo il tasto F9.
Per avviare il debug di un progetto, scegliere l'opzione "Start Debugging" presente all'interno del menu "Debug" (o in alternativa, premere il tasto F5).
Una volta avviato il debug ci si può muovere all'interno del codice con il tasto F5 (per passare direttamente al breakpoint successivo), o F11 (per passare alla riga di codice successiva). Passando il puntatore del mouse sopra le variabili facciamo apparire delle finestre che mostrano i valori attuali di ogni campo, oggetto o proprietà.
Le stesse informazioni possiamo trovarle anche nelle finestre: , e che rispettivamente visualizzano:
- Autos - mostra lo stato delle variabili utilizzate all'interno dello statement corrente (permettendo inoltre di cambiarne i valori per modificare l'esecuzione dell'applicazione a run-time),
- Locals - mostra lo stato delle variabili locali all'applicazione (anche in questo caso permettendo di cambiarne i valori nel corso dell'esecuzione),
- Watch - mostra lo stato delle variabili che decidiamo di ispezionare, selezionando e spostandole direttamente all'interno della finestra.
Altra funzionalità veramente molto utile, per la fase di debug delle proprie applicazioni (soprattutto per siti ASP.NET o applicazioni basate su Windows Sharepoint Services), è la funzione "Attach to process" presente sempre all'interno del menu "Debug".
Questo meccanismo permette all'utente di "attaccare" il debugger presente all'interno dell'IDE ad uno dei processi in esecuzione sulla macchina locale o in remoto (tramite il remote debugger di Visual Studio) e di eseguire operazioni di introspezione su applicazioni che sono già in esecuzione. Per esempio, possiamo selezionare il processo w3wp.exe
(processo con cui gira IIS su Windows Server 2003 e Windows Vista) ed avviare il debug di una delle nostre applicazioni ASP.NET già in esecuzione.