Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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.cppnéven.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.
A töréspont beállításához kattintson a
doWorkfüggvényhívás bal oldalán lévő margóra (vagy válassza ki a kódsort, és nyomja meg az F9 gombot).
Most nyomja meg az F5 gombot (vagy válassza a Debug > Hibakeresés indítása lehetőséget).
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
doWorkfü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ód navigálása
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
, majd nyomja meg a Run to click gombot.
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.
A aktuális kódsorban (amit a sárga végrehajtási mutató jelöl), mozgassa az egérmutatót a
c1objektum fölé, hogy megjelenjen egy információs tipp.
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.Az objektum aktuális tulajdonságértékeinek megtekintéséhez bontsa ki az adatleírást
c1.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.
Kattintson a
c2.front()második példányára, és változtassa meg ac2.front()-tc2.back()-re.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.
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.