Megosztás:


Oktatóanyag: C#-kód hibakeresése a Visual Studióval

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!

  1. Nyissa meg a Visual Studiót. Ha a kezdőablak nincs megnyitva, válassza Fájl>Kezdőablaklehetőséget.

  2. A kezdési ablakban válassza Új projekt létrehozásalehetőséget.

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

    Képernyőkép a Visual Studio 2022

    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.

  2. Az Új projekt konfigurálása ablakban írja be GetStartedDebugging a Projekt neve mezőbe. Ezután válassza Továbblehetőséget.

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

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

    Képernyőkép a Visual Studio 2022 Standard eszköztárának Hibakeresési cél gombjáról.

    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 10
    
  2. A 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.

    Képernyőkép a Visual Studio 2022 hibakeresési eszköztárában található Hibakeresés leállítása gombról.

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

  1. A for függvény Main hurokjá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 Visual Studio 2022 töréspontjának képernyőképe.

    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.

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

    Képernyőkép egy töréspontról a Visual Studio 2022 kódszerkesztőjében, a kódvégrehajtás a töréspontnál szünetel.

    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.

  1. Amíg a kódvégrehajtás szüneteltetve van a name += letters[i] utasításban, mutasson a letters vá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.

  2. Bontsa ki a letters változót az összes tömbelem és azok értékeinek megtekintéséhez.

    A Visual Studio 2022 hibakereső adattippjének képernyőképe, amely a

  3. Vigye az egérmutatót a name változóra az aktuális érték megtekintéséhez, amely egy üres sztring.

  4. 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 SendMessage metó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 SendMessage metódusban, amely jelenleg nem érdekel minket.

  5. Ha néhányszor át szeretné haladni a for cikluson, 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 a name változó fölé, hogy ellenőrizze az adattippben az értékét.

    Képernyőkép egy hibakereső adattippjéről a Visual Studio 2022-ben, amely a

    A változó értéke a for ciklus minden iterációjával változik, és a f, majd fr, majd frestb. é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.

  6. Amíg a kódvégrehajtás szüneteltetve van a for metódus Main ciklusá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 a SendMessage metódushívást.

    A hibakeresőt a következő kódsornál kell szüneteltetni:

    SendMessage(name, a[i]);

  7. A SendMessage metódusba való lépéshez válassza újra F11.

    A sárga mutató a SendMessage metódusba lép.

    Képernyőkép, amelyen a hibakereső végrehajtási mutatója látható a

    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 SendMessage metódus hibakeresését, készen áll arra, hogy visszatérjen a for metódus main ciklusához.

  8. A SendMessage metó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 for metódus Main hurokjában, a SendMessage metó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.

  1. Válassza F5 lehetőséget a töréspontra való továbblépéshez.

  2. A kódszerkesztőben mutasson a Console.WriteLine metódushívásra a SendMessage metó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ó.

    Képernyőkép a Visual Studio 2022 Futtatás kattintásra gombjáról.

  3. Válassza a Futtatás a gombra kattintáshoz. Másik lehetőségként a kurzorral a Console.WriteLine utasításban válassza a Ctrl+F10lehetőséget. Vagy kattintson a jobb gombbal a Console.WriteLine metó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.WriteLine fü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.

Képernyőkép a Visual Studio 2022 Hibakeresési eszköztár Újraindítás gombjáról.

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

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

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

  3. A Helyiek ablakban bontsa ki a letters változót a tömbelemek és azok értékeinek megtekintéséhez.

    Képernyőkép a Visual Studio 2022 Helyiek ablakáról, a

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.

  1. Amíg a hibakereső szüneteltetve van, kattintson a jobb gombbal a name vá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.

  2. Most, hogy beállított egy órát a name változóra, lépkedjen végig a kódon, és tekintse meg a name változó változásának értékét az egyes for ciklus-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.

  1. Amíg a hibakereső szüneteltetve van a for ciklusban, 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 Main metódusnál látható a sárga mutató.

  2. Válassza F11 néhányszor, amíg meg nem jelenik a hibakereső szüneteltetése a SendMessage metódusban.

    A Hívásverem ablak felső sora az aktuális függvényt jeleníti meg, amely a SendMessage metódus. A második sor azt mutatja, hogy a SendMessage metódus a Main metódusból lett meghívva.

    Képernyőkép a Visual Studio 2022 Call Stack ablakáról.

    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.