Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez a cikk egy részletes útmutatóban ismerteti a Visual Studio hibakeresőjének funkcióit. Ha magasabb szintű nézetet szeretne a hibakereső funkcióiról, tekintse meg Először tekintse meg a hibakereső. Amikor hibakeresést végez az alkalmazásán , az általában azt jelenti, hogy az alkalmazást csatolt hibakeresővel futtatja. Ha ezt a feladatot végzi, a hibakereső számos módot kínál arra, hogy lássa, mit csinál a kód a futtatás során. Végiglépkedhet a kódon, és megnézheti a változókban tárolt értékeket, beállíthatja a változókban tárolt órákat, hogy lássa, mikor változnak az értékek, megvizsgálhatja a kód végrehajtási útvonalát, ellenőrizheti, hogy fut-e egy kódág, és így tovább. Ha ez a gyakorlat az első alkalom, hogy kódot próbál hibakeresni, érdemes elolvasnia a Hibakeresés abszolút kezdőknek című részt, mielőtt áttekintené ezt a cikket.
Bár a bemutató alkalmazás C#, a funkciók többsége a C++, a Visual Basic, az F#, a Python, a JavaScript és a Visual Studio által támogatott egyéb nyelvekre is alkalmazható (az F# nem támogatja a szerkesztést és a folytatást. Az F# és a JavaScript nem támogatja az Automatikus ablakot). A képernyőképek C#-ban találhatók.
Ebben az oktatóanyagban a következőket fogja megtanulni:
- Indítsa el a hibakeresőt, és nyomja le a töréspontokat.
- A parancsok tanulása a kód hibakeresőben való végiglépéséhez
- Változók vizsgálata adattippekben és hibakereső ablakokban
- A hívásverem vizsgálata
Előfeltételek
Telepítve kell lennie a Visual Studio 2022-nek és a .NET asztali fejlesztési számítási feladatnak.
Ha még nem telepítette a Visual Studiót, lépjen a Visual Studio letöltési lapjára, és telepítse ingyenesen.
Ha már rendelkezik Visual Studióval, de a .NET asztali fejlesztési számítási feladat nincs telepítve, lépjen Eszközök>Eszközök és szolgáltatások lekérése...elemre, amely elindítja a Visual Studio Installert. A Visual Studio Telepítőben válassza a .NET asztali fejlesztési feladatkört, majd kattintson a Módosításlehetőségre.
Projekt létrehozása
Először létre kell hoznia egy .NET Core-konzolalkalmazás-projektet. A projekttípus tartalmazza az összes szükséges sablonfájlt, mielőtt bármit is hozzáadna!
Nyissa meg a Visual Studiót. Ha a kezdőablak nincs megnyitva, válassza Fájl>Kezdőablaklehetőséget.
A kezdési ablakban válassza Új projekt létrehozásalehetőséget.
A Új projekt létrehozása ablakban írja be konzol a keresőmezőbe. Ezután válassza C# a Nyelv listából, majd válassza Windows a Platform listából.
A nyelvi és platformszűrők alkalmazása után válassza a Konzolalkalmazás sablont, majd válassza a Továbblehetőséget.
Jegyzet
Ha nem látja a konzolalkalmazás sablont, az Új projekt létrehozása ablakból telepítheti. A Nem találja, amit keres? üzenetben válassza a További eszközök és szolgáltatások telepítése hivatkozást. Ezután a Visual Studio Installerben válassza ki a .NET asztali fejlesztési számítási feladatot.
Az Új projekt konfigurálása ablakban írja be GetStartedDebugging a Projekt neve mezőbe. Ezután válassza Továbblehetőséget.
A További információk ablakban győződjön meg arról, hogy .NET 8.0 van kiválasztva a Keretrendszer legördülő menüben, majd válassza a létrehozása lehetőséget.
A Visual Studio megnyitja az új projektet.
Az alkalmazás létrehozása
A Program.cscserélje le az összes alapértelmezett kódot a következő kódra:
using System;
class ArrayExample
{
static void Main()
{
char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};
string name = "";
int[] a = new int[10];
for (int i = 0; i < letters.Length; i++)
{
name += letters[i];
a[i] = i + 1;
SendMessage(name, a[i]);
}
Console.ReadKey();
}
static void SendMessage(string name, int msg)
{
Console.WriteLine("Hello, " + name + "! Count to " + msg);
}
}
Indítsa el a hibakeresőt!
Itt többnyire billentyűparancsokat használunk, mivel ez egy gyors módja a hibakereső parancsok végrehajtásának. Az egyenértékű parancsokat, például az eszköztárat vagy a menüparancsokat is feljegyezi a rendszer.
A hibakereső elindításához válassza F5lehetőséget, vagy válassza a Hibakeresési cél gombot a Standard eszköztáron, vagy válassza a Hibakeresés indítása gombot a hibakeresési eszköztáron, vagy válassza Hibakeresés>Hibakeresés indítása lehetőséget a menüsávon.
F5 elindítja az alkalmazást az alkalmazás folyamatához csatolt hibakeresővel. Mivel nem tettünk semmi különlegeset a kód vizsgálatához, az alkalmazás a befejezésig fut, és megjelenik a konzol kimenete.
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10A hibakereső leállításához válassza a Shift+F5lehetőséget, vagy válassza a Hibakeresés leállítása gombot a hibakeresési eszköztáron, vagy válassza a Hibakeresés>A hibakeresés leállítása lehetőséget a menüsávon.
A konzolablakban válassza ki a kívánt kulcsot a konzolablak bezárásához.
Töréspont beállítása és a hibakereső indítása
A
forfüggvényMainhurokjában állítson be töréspontot a következő kódsor bal margójára kattintva:name += letters[i];Megjelenik egy piros kör, ahol a töréspontot állítja be.
A töréspontok a megbízható hibakeresés alapvető jellemzői. Olyan töréspontokat állíthat be, ahol a Visual Studio szünetelteti a futó kódot, hogy megtekinthesse a változók értékeit vagy a memória viselkedését, vagy tudja, hogy a kód egy ága fut-e.
A hibakeresés megkezdéséhez válassza F5, vagy válassza a Hibakeresési cél gombot a Standard eszköztáron, vagy válassza a Hibakeresés indítása gombot a hibakeresési eszköztáron, vagy válassza Hibakeresés>Hibakeresés indítása lehetőséget a menüsávon. Az alkalmazás elindul, és a hibakereső a töréspont beállításához megadott kódsorra fut.
A sárga nyíl arra az utasításra mutat, amelynél a hibakereső megállt. Az alkalmazás végrehajtása ugyanabban a pillanatban szünetel, és az utasítás még nem lett végrehajtva.
Ha az alkalmazás nem fut, F5 elindítja a hibakeresőt, amely addig futtatja az alkalmazást, amíg el nem éri az első töréspontot. Ha az alkalmazás szüneteltetve van egy töréspontnál, akkor F5 addig futtatja az alkalmazást, amíg el nem éri a következő töréspontot.
A töréspontok akkor hasznosak, ha ismeri a kódnak azt a sorát vagy szakaszát, amelyet részletesen meg szeretne vizsgálni. A különböző típusú töréspontokról, például a feltételes töréspontokról további információt a Töréspontok használatacímű témakörben talál.
Navigálás a kódban és adatok vizsgálata adattippek használatával
Amíg a kódvégrehajtás szüneteltetve van a
name += letters[i]utasításban, mutasson alettersváltozóra a tömbméretet és az elemtípust megjelenítő adattipp megjelenítéséhez,char[10].Jegyzet
A hibakereső egyik legkedvesebb funkciója, hogy képes megvizsgálni egy változót. Amikor hibakeresést végez, gyakran próbálja kideríteni, hogy a változók rendelkeznek-e az adott időpontban várt értékekkel. Az adattippek megtekintése jó módszer ennek ellenőrzésére.
Bontsa ki a
lettersváltozót az összes tömbelem és azok értékeinek megtekintéséhez.
Vigye az egérmutatót a
nameváltozóra az aktuális érték megtekintéséhez, amely egy üres sztring.Ha a hibakeresőt a következő utasításra szeretné előléptetni, válassza F10lehetőséget, vagy válassza a Lépésátlépés gombot a hibakeresési eszköztáron, vagy válassza Hibakeresés>Lépésátlépés lehetőséget a menüsávon. Az F10 kétszeri kiválasztásával lépkedjen át a
SendMessagemetódushíváson.F10 anélkül fejleszti a hibakeresőt, hogy belelép a függvénybe vagy a metódusokba, bár a kód továbbra is fut. Ily módon kihagytuk a kód hibakeresését a
SendMessagemetódusban, amely jelenleg nem érdekel minket.Ha néhányszor át szeretné haladni a
forcikluson, válassza F10 többször. A ciklus minden egyes iterációjánál álljon meg a töréspontnál, majd vigye az egeret anameváltozó fölé, hogy ellenőrizze az adattippben az értékét.
A változó értéke a
forciklus minden iterációjával változik, és af, majdfr, majdfrestb. értékeket jeleníti meg. Ha gyorsabban szeretné előrevinni a hibakeresőt a cikluson, válassza a F5 lehetőséget, amely a következő utasítás végrehajtása helyett a töréspontig ugrik.Amíg a kódvégrehajtás szüneteltetve van a
formetódusMainciklusában, válassza F11, vagy válassza a Lépés gombot a Hibakeresés eszköztáron, vagy válassza Hibakeresés>Lépés a menüsávról, amíg el nem éri aSendMessagemetódushívást.A hibakeresőt a következő kódsornál kell szüneteltetni:
SendMessage(name, a[i]);A
SendMessagemetódusba való lépéshez válassza újra F11.A sárga mutató a
SendMessagemetódusba lép.
F11 segítségével részletesebben megvizsgálhatja a kód végrehajtási folyamatát. Lépjen be egy metódusba egy metódushívás során az F11lehetőség kiválasztásával. Alapértelmezés szerint a hibakereső kihagyja a nem használható metódusok használatát. A nemfelhasználói kód hibakereséséről a Just My Codecímű témakörben olvashat.
Miután befejezte a
SendMessagemetódus hibakeresését, készen áll arra, hogy visszatérjen aformetódusmainciklusához.A
SendMessagemetódus elhagyásához válassza a Shift+F11lehetőséget, vagy válassza a Kilépés gombot a Hibakeresés eszköztáron, vagy válassza a Hibakeresés>Kilépés lehetőséget a menüsávról.Kilépés folytatja az alkalmazás végrehajtását, és a hibakeresőt addig lépteti előre, amíg az aktuális metódus vagy függvény vissza nem tér.
A sárga mutatót újra látja a
formetódusMainhurokjában, aSendMessagemetódushívásnál van szüneteltetve. További információ a kódban való különböző mozgási módokról: Kód navigáció a hibakeresőben.
Navigálás a kódban a Futtatás kattintásra funkcióval
Válassza F5 lehetőséget a töréspontra való továbblépéshez.
A kódszerkesztőben mutasson a
Console.WriteLinemetódushívásra aSendMessagemetódusban, amíg meg nem jelenik a Futtatás kattintásra gomb. A gomb eszköztippjében a "Végrehajtás futtatása ide" felirat látható.
Válassza a Futtatás a gombra kattintáshoz. Másik lehetőségként a kurzorral a
Console.WriteLineutasításban válassza a Ctrl+F10lehetőséget. Vagy kattintson a jobb gombbal aConsole.WriteLinemetódushívásra, és válassza a Futtatás a kurzorig lehetőséget a helyi menüből.A hibakereső továbblép a
Console.WriteLinefüggvényhívásra.A Run to Click gomb használata hasonló egy ideiglenes töréspont beállításához, és hasznos, ha gyorsan szeretnénk navigálni az alkalmazáskód egy látható részén egy megnyitott fájlban.
Az alkalmazás gyors újraindítása
Ha újra szeretné futtatni az alkalmazást a hibakeresőben, válassza a Ctrl+Shift+F5, vagy válassza a Újraindítás gombot a Hibakeresés eszköztáron, vagy válassza a Hibakeresés>Újraindítás lehetőséget a menüsávon.
Újraindítás leállítja a hibakeresőt, majd egy lépésben újraindítja. Amikor a hibakereső újraindul, az első töréspontig fut, amelyet korábban a for hurokban állított be, majd pedig szünetelni kezd.
Változók vizsgálata az Automatikus és helyi beállítások ablakokkal
Az Automatikus és Helyi ablak változó értékeket jelenít meg a hibakeresés során. Az ablakok csak hibakeresési munkamenet során érhetők el. Az Automatikus ablakban a hibakereső aktuális vonalán és az előző sorban használt változók láthatók. A Helyiek ablakban a helyi hatókörben definiált változók láthatók, amelyek általában az aktuális függvény vagy metódus.
Amíg a hibakereső szüneteltetve van, tekintse meg az Automatikus ablakot a kódszerkesztő alján.
Ha az Automatikus ablak be van zárva, válassza a Ctrl+D, A, vagy válassza Hibakeresés>Windows>Automatikus lehetőséget a menüsávon.
Amíg a hibakeresés szünetel, tekintse meg a Helyi változók ablakot az Automatikus változók ablak melletti fülön.
Ha a Helyiek ablak be van zárva, válassza a Ctrl+D, L, vagy válassza Hibakeresés>Windows>Helyieklehetőséget.
A Helyiek ablakban bontsa ki a
lettersváltozót a tömbelemek és azok értékeinek megtekintéséhez.
A Automatikus és Helyi ablakokkal kapcsolatos további információkért lásd: Az Automatikus és helyi beállítások ablak változóinak vizsgálata.
Óra beállítása
Megadhatja azt a változót vagy kifejezést, amelyet a kód végiglépése során nyomon szeretne követni– ehhez adja hozzá a Watch ablakhoz.
Amíg a hibakereső szüneteltetve van, kattintson a jobb gombbal a
nameváltozóra, és válassza a Watch hozzáadásalehetőséget.A Watch ablak alapértelmezés szerint megnyílik a kódszerkesztő alján.
Most, hogy beállított egy órát a
nameváltozóra, lépkedjen végig a kódon, és tekintse meg anameváltozó változásának értékét az egyesforciklus-iterációkkal.A többi változóablaktól eltérően a Watch ablak mindig a figyelt változókat jeleníti meg. A hatókörön kívül eső változók elérhetetlenként jelennek meg.
További információ a Watch ablakról: Watch változók a Watch ablakokkal.
A hívásverem vizsgálata
A hívási verem segít megérteni az alkalmazás végrehajtási folyamatát azáltal, hogy megmutatja a metódusok és függvények hívásának sorrendjét.
Amíg a hibakereső szüneteltetve van a
forciklusban, tekintse meg a Hívásverem ablakot, amely alapértelmezés szerint megnyílik a kódszerkesztő jobb alsó ablaktábláján.Ha a Hívásverem ablak bezárult, válassza a Ctrl+D, C, vagy válassza Hibakeresés>Windows>Hívásverem lehetőséget a menüsávon.
A Hívásverem ablakban az aktuális
Mainmetódusnál látható a sárga mutató.Válassza F11 néhányszor, amíg meg nem jelenik a hibakereső szüneteltetése a
SendMessagemetódusban.A Hívásverem ablak felső sora az aktuális függvényt jeleníti meg, amely a
SendMessagemetódus. A második sor azt mutatja, hogy aSendMessagemetódus aMainmetódusból lett meghívva.
Jegyzet
A Hívásverem ablak hasonló néhány IDE hibakeresési nézetéhez, például az Eclipse-hez.
A Hívási verem ablakban duplán kattintva egy kódsorra, megnyithatja annak forráskódját, amely módosítja a hibakereső által vizsgált aktuális hatókört. A művelet nem viszi előre a hibakeresőt.
A Hívási verem ablakban a jobb egérgombbal kattintva más műveleteket is elvégezhet. Beszúrhat például töréspontokat a megadott függvényekbe, előléptetheti a hibakeresőt a Futtatás a kurzorhozhasználatával, vagy a forráskódra léphet.
A hívásveremrészleteiről lásd: Hogyan kell: A hívásveremvizsgálata.
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 áttekinteni a hibakereső funkcióit, valamint a további információkra mutató hivatkozásokat.