Gyorsindítás: Hibakeresés C++-szal a Visual Studio hibakeresőjének használatával

Ebben a rövid útmutatóban megtudhatja, hogyan használhatja a Visual Studio hibakeresőt a natív C++ kód hibakereséséhez. Ez a cikk gyors módot kínál a hibakeresőben való munkavégzés alapvető funkcióinak megismerésére.

Ha nem rendelkezik Visual Studio, telepítheti a free próbaverziót a Visual Studio Letöltések lapról.

Új projekt létrehozása

Először hozzon létre egy új projektet, hogy legyen némi kódja, amelyet ellenőrizhet a hibakeresőben.

  1. Nyissa meg a Visual Studiót, és hozzon létre egy új projektet.

    • Ha a Kezdőablak nincs megnyitva, válassza a Fájl>Kezdőablak parancsot.

    • A Start ablakban válassza az Új projekt létrehozása lehetőséget.

  2. Az Új projekt létrehozása ablakban állítsa be a szűrőket, és keressen egy projektsablont.

    • A Sablonok keresése mezőbe írja be az üres értéket.

    • Bontsa ki a Nyelv legördülő menüt, és válassza a C++ lehetőséget.

  3. Az eredmények listájában válassza a C++ Empty Project sablont, majd válassza Next.

    Ha nem látja a C++ Empty Project sablonját, válassza a Kontinue kód nélkül lehetőséget.

    1. Válassza a Tools>Eszközök és szolgáltatások... , amely megnyitja a Visual Studio Telepítőt.

    2. A Telepítő ablakban jelölje be a C++ számítási feladattal rendelkező asztali fejlesztés jelölőnégyzetét, majd válassza a Módosítás lehetőséget.

      A Visual Studio telepítése frissül, hogy tartalmazza a kijelölt C++-munkaterhelést.

    3. A frissítés befejezése után válassza a Fájlindító>ablak lehetőséget, és az előző utasításokat követve válassza ki a szükséges sablont.

  4. Az új projekt konfigurálása:

    1. Adjon meg egy Project nevet és Solution nevet, vagy használja az alapértelmezett értékeket.

    2. Használja az alapértelmezett helyet , vagy válassza a Tallózás (...) lehetőséget a projekt másik mappában való létrehozásához.

    3. Válassza a Create gombot.

    Visual Studio létrehozza az új projektet, és hozzáadja a projektfájlokat a megadott mappához.

Projektfájl hozzáadása

Adjon hozzá egy kódfájlt, hogy a hibakeresőben tesztelni tudja a tartalmat.

  1. A Megoldáskezelő panelen kattintson a jobb gombbal a <project-name>, majd válassza a Add>Új elem lehetőséget.

    Ha nem látja a Megoldáskezelő panelt, válassza a View>Megoldáskezelő lehetőséget.

  2. Az Új elem hozzáadása párbeszédpanelen adja meg a fájl nevét MyDbgApp.cpp, majd válassza a Hozzáadás lehetőséget.

    A fájl megnyílik a kódszerkesztőben.

  3. Adja hozzá a következő kódot az új fájlhoz.

    #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. Mentse a fájlmódosításokat a Ctrl+S billentyűparanccsal.

Töréspont beállítása

A breakpoint egy jelölés, amely azt jelzi, hogy a Visual Studiónak hol kell felfüggesztenie a futó kód végrehajtását. Töréspont beállításakor áttekintheti a változók aktuális értékeit, megvizsgálhatja a memória működését, és ellenőrizheti, hogy fut-e egy adott kódág. A töréspontok a hibakeresés legalapvetőbb funkciói.

  1. Töréspont beállításához keresse meg a kódban a doWork() függvény hívását, majd kattintson a bal oldali margón ugyanazon a soron.

    A töréspont beállításakor egy piros pont jelenik meg a bal oldali margón, a kód megfelelő sorában.

    Screenshot, amely bemutatja, hogyan állíthat be töréspontot a Visual Studio debugger.

    Képernyőkép, amely azt mutatja, hogyan lehet töréspontot beállítani a Visual Studio 2022 hibakeresőjében.

  2. Kezdje el a hibakeresést az F5 billentyűparanccsal (vagy válassza aHibakeresés indítása> lehetőséget).

    Képernyőkép, amelyen a hibakereső egy beállított töréspontnál szünetel a Visual Studióban.

    Képernyőkép, amelyen a hibakereső egy beállított töréspontnál szünetel a Visual Studio 2022-ben.

    A kódvégrehajtás közvetlenül a függvény hívása doWork() előtt szünetel.

    A hibakereső ott áll meg, ahol a töréspontot beállította. A sárga nyíl azt az utasítást azonosítja, amelyben a hibakereső szünetelteti az alkalmazás végrehajtását.

    Jótanács

    A C++-kódban előforduló memóriával kapcsolatos hibák hibakeresésekor töréspontokkal is megvizsgálhatja a címértékeket (keresse a(z) NULL elemet) és a hivatkozásszámokat.

Feltételes töréspontok beállítása

Ha töréspontot állít be egy hurokban vagy rekurzióban, vagy ha sok olyan törésponttal rendelkezik, amelyeken gyakran lépeget, használjon feltételes töréspontot.

Ezzel a módszerrel biztosítható, hogy a kód csak bizonyos feltételek teljesülése esetén legyen felfüggesztve. A feltételes töréspontok időt takaríthatnak meg, és megkönnyítik a nehezen reprodukálható problémák hibakeresését is.

A kód végigjárása

Visual Studio számos különböző módot kínál arra, hogy utasítsa a hibakeresőt az alkalmazás végrehajtásának folytatására. Az alábbi példa egy hasznos parancsot mutat be a kód végigjárásához.

Amíg a kód szünetel a töréspontnál, vigye az egérmutatót az utasítás c1.push_back(20) fölé, amíg meg nem jelenik a zöld Futtatás a kattintáshoz (Futtatás ide) ikon. Válassza ki az ikont.

Képernyőkép, amely bemutatja, hogyan használható a Run to Click művelet a Visual Studio hibakeresőjében.

Amíg a kód szünetel a töréspontnál, vigye az egérmutatót az utasítás c1.AddLast(20) fölé, amíg meg nem jelenik a zöld Futtatás a kattintáshoz (Futtatás ide) ikon. Válassza ki az ikont.

Képernyőkép, amely bemutatja, hogyan használható a Run to Click művelet a Visual Studio 2022 hibakeresőjében.

Az alkalmazás tovább fut, meghívja a doWork elemet, majd megáll annál a kódsornál, ahol a Run to click lehetőséget választotta.

A kód lépésenkénti végrehajtásához használt gyakori billentyűparancsok közé tartozik az F10 és az F11. Részletesebb útmutatásért lásd: A Visual Studio hibakereső áttekintése.

Változók vizsgálata adattippben

Az adattipp funkcióval megvizsgálhatja a változók állapotát.

  1. Az aktuális kódsorban (sárga végrehajtási mutatóval jelölve) mutasson az objektumra az c1 adattipp megtekintéséhez.

    Screenshot, amely bemutatja, hogyan tekintheti meg a kódváltozók adattippeit a Visual Studio debugger.

    Képernyőkép arról, hogyan tekinthetők meg a kódváltozók adattippjei a Visual Studio 2022 hibakeresőjében.

    Az adattipp megjeleníti a változó aktuális értékét c1 , és lehetővé teszi annak tulajdonságainak vizsgálatát.

    Hibakereséskor, ha egy változó váratlan értékét látja, valószínűleg hiba lépett fel. A hiba lehet a változó hívását kezdeményező kódban vagy az előző sorban.

  2. Nyissa meg az adattippet a c1 objektum aktuális tulajdonságértékeinek megtekintéséhez.

  3. Ha folytatni szeretné a kód végrehajtásának értékének c1 ellenőrzését, válassza a pin ikont az adattippen.

    A rögzítési művelet nyitva tartja az adattippet. A kód végrehajtásakor a rögzített tipp értéke megváltozik, hogy megjelenjen a figyelt objektum aktuális állapota.

    A rögzített tippet az IDE bármely helyére áthelyezheti, így nem akadályozza meg, hogy más elemeket is megfigyeljen a hibakeresés során.

Forró újratöltés engedélyezése hibakeresés közben

Ha hibakeresés közben olyan módosítást lát, amelyet tesztelni szeretne a kódban, használhatja a Hot Reload funkciót (korábban Szerkesztés és folytatás).

  1. Válassza ki az utasítás második példányát c2.front() , és módosítsa a kódot a következőre c2.back(): .

  2. Válassza az F10-et néhányszor (vagy válassza a Hibakeresési>lépés néhányszor) lehetőséget a hibakereső továbbfejtéséhez és a szerkesztett kód végrehajtásához.

    Animáció, amely bemutatja, hogyan lehet szerkeszteni és folytatni a munkát a Visual Studio hibakeresőjének „Hot Reload” funkciójával.

    Animáció, amely bemutatja, hogyan lehet szerkeszteni és folytatni a Visual Studio 2022 hibakeresőjében.

    F10 előrelépteti a hibakeresőt egy utasítással, de a függvényeken átlép ahelyett, hogy belépne azokba (a kihagyott kód még mindig végrehajtódik).

A funkcióval és a korlátozásokkal kapcsolatos további információkért lásd: Configure Hot Reload.

Következő lépés