Guida introduttiva: Eseguire il debug con C++ usando il debugger di Visual Studio

In questa guida introduttiva viene illustrato come usare il debugger Visual Studio per eseguire il debug del codice C++ nativo. Questo articolo offre un modo rapido per apprendere alcune delle funzionalità di base per lavorare nel debugger.

Se non si dispone di Visual Studio, è possibile installare la versione di valutazione gratuita dalla pagina download Visual Studio.

Creare un nuovo progetto

Per iniziare, creare un nuovo progetto, quindi è necessario disporre di codice da archiviare nel debugger.

  1. Aprire Visual Studio e creare un nuovo progetto.

    • Se la finestra iniziale non è aperta, selezionareFinestra di avvio>.

    • Nella finestra iniziale selezionare Crea un nuovo progetto.

  2. Nella finestra Crea un nuovo progetto impostare i filtri e cercare un modello di progetto.

    • Nella casella Cerca modelli immettere vuoto.

    • Espandere l'elenco a discesa Linguaggio e selezionare C++.

  3. Nell'elenco dei risultati selezionare il modello Empty Project per C++, quindi selezionare Next.

    Se non viene visualizzato il modello Empty Project per C++, selezionare l'opzione Continue senza codice.

    1. Selezionare Tools>Strumenti e funzionalità... , che apre il programma di installazione di Visual Studio.

    2. Nella finestra Del programma di installazione selezionare la casella di controllo per il carico di lavoro Sviluppo di applicazioni desktop con C++ e quindi selezionare Modifica.

      L'installazione di Visual Studio viene aggiornata per includere il carico di lavoro C++ selezionato.

    3. Al termine dell'aggiornamento, selezionare Finestra diavvio> e seguire le istruzioni precedenti per selezionare il modello richiesto.

  4. Configurare il nuovo progetto:

    1. Immettere un nome Project name e Solution name oppure usare i valori predefiniti.

    2. Usare il percorso predefinito o selezionare Sfoglia (...) per creare il progetto in una cartella diversa.

    3. Fare clic su Crea.

    Visual Studio crea il nuovo progetto e aggiunge i file di progetto nella cartella specificata.

Aggiungere un file di progetto

Aggiungere un file di codice in modo da avere contenuto da testare nel debugger.

  1. Nel riquadro Esplora soluzioni, Fare clic con il pulsante destro del mouse sul <project-name> e selezionare Add>New Item.

    Se il riquadro Esplora soluzioni non viene visualizzato, selezionare View>Esplora soluzioni.

  2. Nella finestra di dialogo Aggiungi nuovo elemento immettere il nome file MyDbgApp.cpp e quindi selezionare Aggiungi.

    Il file viene aperto nell'editor di codice.

  3. Aggiungere il codice seguente al nuovo file.

    #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();
    }
    
  4. Salvare le modifiche apportate al file con il tasto di scelta rapida CTRL+S .

Imposta punto di interruzione

Un breakpoint è un marcatore che indica dove Visual Studio deve sospendere il codice in esecuzione. Quando viene impostato un punto di interruzione, è possibile esaminare i valori correnti delle variabili, esaminare il comportamento della memoria e verificare se è in esecuzione un ramo di codice specifico. I punti di interruzione sono la funzionalità di base per il debug.

  1. Per impostare un punto di interruzione, individua la chiamata alla funzione doWork() nel codice, quindi seleziona il margine sinistro sulla stessa riga.

    Quando il punto di interruzione è impostato, viene visualizzato un punto rosso nella barra sinistra sulla riga corrispondente nel codice.

    Screenshot che illustra come impostare un punto di interruzione nel debugger Visual Studio.

    Screenshot che illustra come impostare un punto di interruzione nel debugger Visual Studio 2022.

  2. Avviare il debug usando il tasto di scelta rapida F5 (o selezionare Debug>Avvia debug).

    Screenshot che mostra il debugger sospeso in un punto di interruzione impostato in Visual Studio.

    Screenshot che mostra il debugger sospeso in un punto di interruzione impostato in Visual Studio 2022.

    L'esecuzione del codice viene sospesa immediatamente prima della chiamata alla doWork() funzione .

    Il debugger sospende dove si imposta il punto di interruzione. Una freccia gialla identifica l'istruzione in cui il debugger sospende l'esecuzione dell'app.

    Suggerimento

    Quando si esegue il debug di errori correlati alla memoria nel codice C++, è anche possibile usare i punti di interruzione per esaminare i valori degli indirizzi (cercare NULL) e i conteggi dei riferimenti.

Impostare punti di interruzione condizionali

Se imposti un punto di interruzione in un ciclo o in una funzione ricorsiva, oppure se hai molti punti di interruzione attraverso cui passi spesso, usa un punto di interruzione condizionale.

Questo approccio consente di garantire che il codice venga sospeso solo quando vengono soddisfatte condizioni specifiche. Un punto di interruzione condizionale può risparmiare tempo e semplificare il debug dei problemi difficili da riprodurre.

Esaminare il codice

Visual Studio offre diversi modi per indicare al debugger di continuare con l'esecuzione dell'app. L'esempio seguente illustra un comando utile per scorrere il codice.

Mentre il codice viene sospeso in corrispondenza del punto di interruzione, passare il puntatore del mouse sull'istruzione c1.push_back(20) fino a visualizzare l'icona verde Esegui per fare clic (Esegui esecuzione fino a qui). Selezionare l'icona.

Screenshot che illustra come usare l'azione Esegui per fare clic nel debugger Visual Studio.

Mentre il codice viene sospeso in corrispondenza del punto di interruzione, passare il puntatore del mouse sull'istruzione c1.AddLast(20) fino a visualizzare l'icona verde Esegui per fare clic (Esegui esecuzione fino a qui). Selezionare l'icona.

Schermata che mostra come usare l'azione Esegui fino al clic nel debugger di Visual Studio 2022.

L'app continua l'esecuzione, chiamando doWorke sospende nella riga di codice in cui è stata selezionata l'opzione Esegui per fare clic.

I comandi da tastiera comuni usati per scorrere il codice includono F10 e F11. Per istruzioni più approfondite, vedere Panoramica del debugger Visual Studio.

Esaminare le variabili in un'informazione sui dati

È possibile esaminare lo stato delle variabili usando la funzionalità suggerimento dati .

  1. Nella riga di codice corrente (contrassegnata dal puntatore di esecuzione giallo), passare il puntatore del mouse sull'oggetto c1 per visualizzare la descrizione dati.

    Screenshot che mostra come visualizzare i suggerimenti per i dati per le variabili di codice nel debugger Visual Studio.

    Screenshot che illustra come visualizzare i suggerimenti per i dati per le variabili di codice nel debugger Visual Studio 2022.

    Il suggerimento dati mostra il valore corrente della variabile c1 e consente di ispezionarne le proprietà.

    Quando si esegue il debug, se viene visualizzato un valore imprevisto per una variabile, è probabile che si verifichi un bug. Il bug potrebbe trovarsi nel codice che effettua la chiamata alla variabile o nella riga precedente.

  2. Espandere la descrizione dati per esaminare i valori correnti delle proprietà dell'oggetto c1 .

  3. Per continuare a controllare il valore di durante l'esecuzione del codice, selezionare l'icona a forma di c1puntina sulla descrizione dati.

    L'azione di aggiunta mantiene aperta la descrizione dati. Durante l'esecuzione del codice, il valore nel suggerimento fissato cambia per mostrare lo stato corrente dell'oggetto controllato.

    Puoi spostare il suggerimento bloccato in qualsiasi punto dell'IDE, in modo che non ti impedisca di osservare altri elementi durante il debug.

Abilitare il ricaricamento rapido durante il debug

Durante il debug, se viene visualizzata una modifica che si vuole testare nel codice, è possibile usare la funzionalità Ricaricamento rapido (precedentemente denominata Edit e Continue).

  1. Selezionare la seconda istanza dell'istruzione c2.front() e modificare il codice in c2.back().

  2. Premere F10 più volte (oppure selezionare Debug>Esegui istruzione senza entrare più volte) per far avanzare il debugger ed eseguire il codice modificato.

    Animation che illustra come modificare e continuare con la funzionalità

    Animation che illustra come modificare e continuare nel debugger Visual Studio 2022.

    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 sulle funzionalità e sulle limitazioni, vedere Configurare Ricaricamento rapido.

Passo successivo