Snabbstart: Felsöka med C++ med hjälp av Visual Studio-felsökningsprogrammet

I den här snabbstarten utforskar du hur du använder Visual Studio felsökningsprogrammet för att felsöka din interna C++-kod. Den här artikeln innehåller ett snabbt sätt att lära dig några av de grundläggande funktionerna för att arbeta i felsökningsprogrammet.

Om du inte har Visual Studio kan du installera utvärderingsversionen free från sidan Visual Studio Nedladdningar.

Skapa ett nytt projekt

Börja med att skapa ett nytt projekt, så att du har lite kod för att checka in felsökningsprogrammet.

  1. Öppna Visual Studio och skapa ett nytt projekt.

    • Om startfönstret inte är öppet väljer du Startfönster för fil>.

    • I startfönstret väljer du Skapa ett nytt projekt.

  2. I fönstret Skapa ett nytt projekt anger du filtren och söker efter en projektmall.

    • I rutan Sök efter mallar anger du tom.

    • Expandera listrutan Språk och välj C++.

  3. I listan med resultat väljer du mallen Empty Project för C++och väljer sedan Nästa.

    Om du inte ser mallen Empty Project för C++, väljer du alternativet Kontinuera utan kod.

    1. Välj Tools>Get Tools and Features... som öppnar installationsprogrammet för Visual Studio.

    2. I fönstret Installationsprogram markerar du kryssrutan för Skrivbordsutveckling med C++ -arbetsbelastning och väljer sedan Ändra.

      Din Visual Studio-installation uppdateras så att den inkluderar den valda C++-arbetsbelastningen.

    3. När uppdateringen är klar väljer duStartfönster för > och följer de föregående anvisningarna för att välja den mall som krävs.

  4. Konfigurera det nya projektet:

    1. Ange namnet Project och Solution eller använd standardvärdena.

    2. Använd standardplatsen eller välj bläddra (...) för att skapa projektet i en annan mapp.

    3. Välj Skapa.

    Visual Studio skapar det nya projektet och lägger till projektfilerna i den angivna mappen.

Lägga till en projektfil

Lägg till en kodfil så att du har innehåll att testa i felsökningsprogrammet.

  1. I fönstret Prieskumník riešení högerklicka på din <project-name> och välj Lägg till>Nyt objekt.

    Om du inte ser fönstret Prieskumník riešení väljer du View>Prieskumník riešení.

  2. I dialogrutan Lägg till nytt objekt anger du filnamnet MyDbgApp.cpp och väljer sedan Lägg till.

    Filen öppnas i kodredigeraren.

  3. Lägg till följande kod i den nya filen.

    #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. Spara dina filändringar med kortkommandot Ctrl+S .

Ange en brytpunkt

En breakpoint är en markör som anger var Visual Studio ska pausa koden som körs. När en brytpunkt har angetts kan du ta en titt på de aktuella värdena för variabler, undersöka minnesbeteendet och kontrollera om en specifik kodgren körs. Brytpunkter är den mest grundläggande funktionen vid felsökning.

  1. Om du vill ange en brytpunkt, letar du upp anropet till funktionen doWork() i koden och väljer sedan i den vänstra marginalen på samma rad.

    När brytpunkten har angetts visas en röd punkt i den vänstra rännstenen på motsvarande rad i koden.

    Screenshot som visar hur du anger en brytpunkt i Visual Studio debugger.

    Screenshot som visar hur du anger en brytpunkt i felsökningsprogrammet för Visual Studio 2022.

  2. Börja felsöka med hjälp av kortkommandot F5 (eller välj Felsök>Starta felsökning).

    Skärmbild som visar felsökaren pausad vid en angiven brytpunkt i Visual Studio.

    Skärmbild som visar debuggern pausad vid en angiven brytpunkt i Visual Studio 2022.

    Kodkörningen pausas omedelbart före anropet av funktionen doWork().

    Felsökningsprogrammet pausar där du anger brytpunkten. En gul pil visar den instruktion där felsökaren pausar appens körning.

    Tips/Råd

    När du felsöker minnesrelaterade fel i C++-kod kan du också använda brytpunkter för att inspektera adressvärden (sök efter NULL) och referensräkningar.

Ange villkorsstyrda brytpunkter

Om du anger en brytpunkt i en loop eller rekursion, eller om du har många brytpunkter som du ofta går igenom, använder du en villkorlig brytpunkt.

Den här metoden hjälper till att se till att koden pausas endast när specifika villkor uppfylls. En villkorlig brytpunkt kan spara tid och även göra det enklare att felsöka problem som är svåra att återskapa.

Gå igenom koden

I Visual Studio finns det flera olika sätt att instruera felsökaren att fortsätta köra appen. I följande exempel visas ett användbart kommando för att gå igenom koden.

Medan koden pausas vid brytpunkten hovrar du över -instruktionen c1.push_back(20) tills du ser den gröna ikonen Kör för att klicka (Kör körning till här). Välj ikonen.

Skärmbild som visar hur du använder åtgärden Kör till klick i Visual Studio-felsökaren.

Medan koden pausas vid brytpunkten hovrar du över -instruktionen c1.AddLast(20) tills du ser den gröna ikonen Kör för att klicka (Kör körning till här). Välj ikonen.

Screenshot som visar hur du arbetar med åtgärden Kör för att klicka i felsökningsprogrammet Visual Studio 2022.

Appen fortsätter att köras, anropar doWorkoch pausar på den kodrad där du valde Kör för att klicka.

Vanliga tangentbordskommandon som används för att stega igenom kod är F10 och F11. Mer detaljerade instruktioner finns i Översikt av Visual Studio felsökningsprogrammet.

Granska variabler i ett datatips

Du kan kontrollera tillståndet för dina variabler med hjälp av datatipsfunktionen .

  1. I den aktuella kodraden (markerad med den gula körningspekaren) hovrar du över c1objektet för att se datatipset.

    Screenshot som visar hur du visar datatips för kodvariabler i Visual Studio debugger.

    Screenshot som visar hur du visar datatips för kodvariabler i felsökningsprogrammet Visual Studio 2022.

    Datatipset visar det aktuella värdet för variabeln c1 och gör att du kan inspektera dess egenskaper.

    Om du ser ett oväntat värde för en variabel när du felsöker har du förmodligen en bugg. Felet kan finnas i koden som gör anropet till variabeln eller på föregående rad.

  2. Expandera datatipset för att titta på objektets aktuella egenskapsvärden c1 .

  3. Om du vill fortsätta kontrollera värdet på c1 medan koden körs väljer du nålikonen i datatipset.

    Pin-åtgärden håller datatipset öppet. När koden körs ändras värdet i det fästa tipset för att visa aktuellt tillstånd för det övervakade objektet.

    Du kan flytta det fästa tipset till valfri plats i IDE:t, så det hindrar dig inte från att titta på andra objekt vid felsökning.

Aktivera direkt omladdning under felsökning

Om du ser en ändring som du vill testa i koden när du felsöker kan du använda funktionen Hot Reload (kallades tidigare Redigera och fortsätt).

  1. Välj den andra instansen av -instruktionen c2.front() och ändra koden till c2.back().

  2. Välj F10 några gånger (eller välj Felsök>steg över några gånger) för att gå vidare med felsökningsprogrammet och köra den redigerade koden.

    Animation som visar hur du redigerar och fortsätter med funktionen

    Animation som visar hur du redigerar och fortsätter i felsökningsprogrammet för Visual Studio 2022.

    F10 avancerar felsökningsprogrammet en instruktion i taget, men steg över funktioner i stället för att kliva in i dem (koden som du hoppar över körs fortfarande).

Mer information om funktionen och begränsningarna finns i Konfigurera Hot Reload.

Nästa steg