Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il debugger di Visual Studio offre molte funzionalità potenti che consentono di eseguire il debug delle app. Questo argomento offre un modo rapido per apprendere alcune delle funzionalità di base.
Creare un nuovo progetto
Aprire Visual Studio e creare un progetto.
Se la finestra Start non è già aperta, selezionare File > Finestra di avvio. Nella finestra Start selezionare Crea un nuovo progetto. Nella casella di ricerca digitare "Progetto vuoto" e quindi selezionare il modello Progetto vuoto C++.
Se il modello di progetto non viene visualizzato, aprire il programma di installazione di Visual Studio. Scegliere il carico di lavoro Sviluppo di applicazioni desktop con C++ e quindi scegliere Modifica.
Visual Studio crea il progetto.
Creare un nuovo file di origine denominato
MyDbgApp.cpp
In MyDbgApp.cpp sostituire il codice seguente
int main() { return 0; }
con questo codice (non rimuovere
#include "stdafx.h"
):#include <list> #include <iostream> using namespace std; void doWork() { list <int> c1; c1.push_back(10); c1.push_back(20); const list <int> c2 = c1; const int &i = c2.front(); const int &j = c2.front(); cout << "The first element is " << i << endl; cout << "The second element is " << j << endl; } int main() { doWork(); }
Imposta punto di interruzione
Un punto di interruzione è un indicatore che indica dove Visual Studio deve sospendere il codice in esecuzione in modo da poter esaminare i valori delle variabili o il comportamento della memoria oppure se viene eseguito o meno un ramo di codice. È la funzionalità più semplice per il debug.
Per impostare il punto di interruzione, fare clic sulla barra a sinistra della
doWork
chiamata di funzione oppure selezionare la riga di codice e premere F9.A questo punto premere F5 o scegliere Debug > Avvia debug.
Il debugger sospende dove si imposta il punto di interruzione. L'istruzione in cui viene sospesa l'esecuzione del debugger e dell'app è indicata dalla freccia gialla. La riga con la chiamata di
doWork
funzione non è ancora stata eseguita.Suggerimento
Se si dispone di un punto di interruzione in un ciclo o in una ricorsione o se si dispone di molti punti di interruzione di frequente, usare un punto di interruzione condizionale per assicurarsi che il codice venga sospeso SOLO quando vengono soddisfatte condizioni specifiche. Un punto di interruzione condizionale consente di risparmiare tempo e può anche semplificare il debug dei problemi difficili da riprodurre.
Quando si tenta di eseguire il debug degli errori correlati alla memoria in C++, è anche possibile usare i punti di interruzione per esaminare i valori degli indirizzi (cercare NULL) e i conteggi dei riferimenti.
Navigare nel codice
Esistono comandi diversi per indicare al debugger di continuare. Viene illustrato un comando di spostamento del codice utile disponibile a partire da Visual Studio 2017.
Mentre si è sospesi in corrispondenza del punto di interruzione, passare il puntatore del mouse sull'istruzione c1.push_back(20)
fino a quando non viene visualizzato il pulsante verde Esegui fino a clic e quindi premere il pulsante Esegui fino a clic.
L'app continua l'esecuzione chiamando doWork
e si sospende sulla riga di codice sulla quale hai fatto clic sul pulsante.
I comandi da tastiera comuni usati per scorrere il codice includono F10 e F11. Per istruzioni più approfondite, vedere Prima di tutto esaminare il debugger.
Esaminare le variabili in una descrizione dati
Nella riga di codice corrente (contrassegnata dal puntatore di esecuzione giallo) passare il puntatore del mouse sull'oggetto
c1
per visualizzare una descrizione dati.Il datatip mostra il valore corrente della variabile
c1
e consente di esaminarne le proprietà. Quando si esegue il debug, se viene visualizzato un valore non previsto, è probabile che si verifichi un bug nelle righe di codice precedenti o chiamanti.Espandi la descrizione dettagliata per esaminare i valori correnti delle proprietà dell'oggetto
c1
.Se vuoi fissare la descrizione dei dati per continuare a vedere il valore di
c1
durante l'esecuzione del codice, fai clic sull'icona a forma di piccola puntina. Puoi spostare il datatip bloccato in una posizione comoda.
Modificare il codice e continuare il debug
Se si identifica una modifica che si vuole testare nel codice durante una sessione di debug, è anche possibile eseguire questa operazione.
Fare clic sulla seconda istanza di
c2.front()
e passarec2.front()
ac2.back()
.Premere F10 (o Debug > Passa sopra) alcune volte per avanzare il debugger ed eseguire il codice modificato.
F10 sposta in avanti il debugger un'istruzione alla volta, ma esegue passaggi sulle funzioni invece di eseguirle (il codice ignorato continua a essere eseguito).
Per altre informazioni sull'uso di modifiche e continuazione e sulle limitazioni delle funzionalità, vedere Modifica e continuazione.
Passaggi successivi
In questa esercitazione si è appreso come avviare il debugger, eseguire il codice ed esaminare le variabili. È possibile ottenere un'analisi generale delle funzionalità del debugger insieme ai collegamenti ad altre informazioni.