Megosztás a következőn keresztül:


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

A Visual Studio hibakeresője számos hatékony funkciót kínál, amelyek segítenek az alkalmazások hibakeresésében. Ez a téma egy gyors módját nyújtja annak, hogy megtanuljon néhány alapvető funkciót.

Új projekt létrehozása

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

    Ha a Start ablak még nincs megnyitva, válassza a Fájl > Start ablak lehetőséget. A Start ablakban válassza Új projekt létrehozásalehetőséget. A keresőmezőbe írja be az "Üres projekt" kifejezést, majd válassza ki a C++ Empty Project sablont.

    Ha nem látja a projekt sablont, nyissa meg a Visual Studio Installer-t. Válassza ki az asztali fejlesztést C++ számítási feladattal, majd válassza a Módosítás lehetőséget.

    A Visual Studio létrehozza a projektet.

    Hozzon létre egy új forrásfájlt MyDbgApp.cpp néven.

  2. A MyDbgApp.cpp fájlban cserélje le a következő kódot

    int main()
    {
        return 0;
    }
    

    ezzel a kóddal (ne távolítsa el #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();
    }
    

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

A töréspont egy jelölő, amely azt jelzi, hol kell a Visual Studio-nak felfüggesztenie a futó kódját, hogy megvizsgálhassa a változók értékeit, a memória viselkedését, vagy azt, hogy egy kódszakasz lefut-e. Ez a hibakeresés legalapvetőbb funkciója.

  1. A töréspont beállításához kattintson a doWork függvényhívás bal oldalán lévő margóra (vagy válassza ki a kódsort, és nyomja meg az F9 gombot).

    Állítsa be a töréspontot

  2. Most nyomja meg az F5 gombot (vagy válassza a Debug > Hibakeresés indítása lehetőséget).

    Megállási pontot ért el

    A hibakereső ott áll meg, ahol a töréspontot beállította. Az a mondat, ahol a hibakereső és az alkalmazás végrehajtása szünetel, egy sárga nyíllal van jelölve. A doWork függvényhívást tartalmazó sort még nem hajtották végre.

    Jótanács

    Ha van egy töréspontod egy ciklusban vagy rekurzióban, vagy ha több töréspont van, amelyeken gyakran lépsz át, használj egy feltételes töréspontot, hogy biztosítsd, a kód csak akkor legyen felfüggesztve, amikor konkrét feltételek teljesülnek. A feltételes töréspont időt takarít meg és megkönnyítheti az olyan problémák hibakeresését, amelyeket nehéz reprodukálni.

    Amikor memóriával kapcsolatos hibákat próbálunk hibakeresni C++-ban, használhatunk töréspontokat is az cím értékek (keressen NULL értékeket) és a referenciakilencs számának vizsgálatához.

Különböző parancsok utasítják a hibakeresőt a folytatásra. Bemutatunk egy hasznos kód-navigációs parancsot, amely a Visual Studio 2017-től érhető el.

A töréspontnál szüneteltetve vigye az egérmutatót az utasítás c1.push_back(20) fölé, amíg meg nem jelenik a zöld Run to click gomb Run to Click, majd nyomja meg a Run to click gombot.

Kattintás a futtatáshoz

Az alkalmazás folytatja a végrehajtást, amikor meghívja doWork, és szünetel azon a kódsoron, ahol a gombra kattintott.

A kód lépésenkénti végrehajtásához használt gyakori billentyűparancsok közé tartozik az F10 és az F11. A részletesebb utasításokért lásd: Első pillantás a hibakeresőre.

Vizsgálja meg a változókat egy adatbuborékban.

  1. A aktuális kódsorban (amit a sárga végrehajtási mutató jelöl), mozgassa az egérmutatót a c1 objektum fölé, hogy megjelenjen egy információs tipp.

    Adatleírás megtekintése

    Az adatleírás megjeleníti a változó aktuális értékét c1 , és lehetővé teszi annak tulajdonságainak vizsgálatát. Ha hibakereséskor olyan értéket lát, amely nem várható, valószínűleg hiba van az előző vagy a kódsorokban.

  2. Az objektum aktuális tulajdonságértékeinek megtekintéséhez bontsa ki az adatleírást c1.

  3. Ha szeretné rögzíteni a dátumtipet, hogy a c1 értékét továbbra is láthassa a kód futtatása közben, kattintson a kis gombostű ikonra. (A rögzített adatbuborékot áthelyezheti egy kényelmes helyre.)

Kód szerkesztése és hibakeresés folytatása

Ha a hibakeresés közepette azonosítasz egy módosítást, amit tesztelni szeretnél a kódban, azt is megteheted.

  1. Kattintson a c2.front() második példányára, és változtassa meg a c2.front()-t c2.back()-re.

  2. Nyomja meg a F10 billentyűt (vagy a Debug > Step Over parancsot) néhányszor, hogy továbblépjen a hibakeresővel és végrehajtsa a szerkesztett kódot.

    Szerkesztés és folytatás

    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).

További információt az edit-and-continue funkció használatáról és a szolgáltatás korlátairól az Edit and Continue dokumentumban talál.

Következő lépések

Ebben az oktatóanyagban megtanulta, hogyan indíthatja el a hibakeresőt, hogyan léphet át a kódon, és hogyan vizsgálhatja meg a változókat. Érdemes lehet magas szintű áttekintést kapni a hibakereső funkcióiról, valamint hivatkozásokat további információkra.