A Visual Studio Code .NET-hibakeresőjének ismertetése

Befejeződött

Az előző leckében megtudta, hogy a hibakereső segít a programok végrehajtásának vezérlésében, és az állapotuk megfigyelésében. Ebből a szakaszból megtudhatja, hogyan végezheti el mindkét tevékenységet a Visual Studio Code-ban.

Kezdésként nézzük meg, hogyan lehet a Visual Studio Code hibakeresőjét úgy konfigurálni, hogy azt a .NET-tel lehessen használni.

A Visual Studio Code konfigurálása .NET-hibakereséshez

Amikor először nyit meg egy C#-fájlt a Visual Studio Code-ban, a rendszer felkéri, hogy telepítse a javasolt C#-bővítményeket.

Screenshot of Visual Studio Code prompt to install the C# extension.

A Visual Studio Code telepíti a C#-bővítményt, és egy következő panelen felkéri a projekt buildeléséhez és hibakereséséhez szükséges eszközök hozzáadására.

Screenshot of Visual Studio Code prompt to add required assets to build and debug your .NET project.

Megjegyzés:

A C# nyelv támogatása a Visual Studio Code-ban egy választható, a Marketplace-ről telepíthető funkció. A Visual Studio Code automatikusan rákérdez a bővítmény telepítésére, ha úgy nyit meg egy C#-fájlt, hogy a bővítmény még nincs telepítve. Ha a Visual Studio Code-ban a .NET-alkalmazás felépítése vagy hibakeresése során problémákba ütközik, ellenőrizze, hogy a projekt rendelkezik-e a szükséges eszközökkel a C# nyelv támogatásához.

Töréspontok

Ahogyan azt az előző leckében megtudhatta, a hibakereső segít a programok végrehajtásának vezérlésében és elemzésében. A Visual Studio Code hibakeresőjének indításakor azonnal megkezdődik a kód végrehajtása. Mivel a kód végrehajtása gyorsan történik, a programot bármely utasításnál meg kell tudnia állítani. Ehhez töréspontokat használ majd.

Töréspontot úgy vehet fel a Visual Studio Code-ban, hogy a megszakítani kívánt sor sorszámának bal oldalára kattint. A töréspont hozzáadása után egy piros kör jelenik meg. Ha el szeretné távolítani, csak válassza ismét ezt a piros kört.

Screenshot of a breakpoint added in the Visual Studio Code editor window.

Ha a jobb gombbal kattint a töréspont hozzáadásához, akkor a Feltételes töréspont hozzáadása lehetőséget is választhatja. Ez a speciális töréspont lehetővé teszi, hogy megadjon egy feltételt a végrehajtás megszakításához. Ez a töréspont csak akkor aktív, ha a megadott feltétel teljesül. Módosíthatja a meglévő töréspontokat, ha a jobb gombbal rájuk kattint, és kiválasztja a Töréspont szerkesztése lehetőséget.

Screenshot of setting a conditional breakpoint in Visual Studio Code.

A Visual Studio hibakeresőjének áttekintése

Miután beállította a töréspontokat és elindította az alkalmazást, új információs panelek és vezérlőelemek jelennek meg a képernyőn.

Screenshot of Visual Studio Code debugger overview.

  1. A hibakereső indítási vezérlői
  2. Változók állapota
  3. Figyelt változók állapota
  4. Aktuális hívássorozat
  5. Töréspontok
  6. Végrehajtási vezérlők
  7. Aktuális végrehajtási lépés
  8. Hibakeresési konzol

A hibakereső indítási vezérlői

Az oldalsáv tetején megtalálhatja az indítási vezérlőket:

Screenshot of Visual Studio Code debug sidebar controls.

  1. Indítsa el a hibakeresést.
  2. Válassza ki az aktív indítási konfigurációt.
  3. Szerkessze a launch.json fájlt. Szükség esetén hozza létre azt.
  4. Nyissa meg a hibakeresési terminált.

Változók állapotának megtekintése és szerkesztése

A programhibák okának elemzésekor figyelje a változók állapotát, hogy váratlan változásokat keressen. Ehhez használhatja a Változók panelt.

A változók a hatókör szerint rendezve jelennek meg:

  • A helyi változók azok, amelyekhez az aktuális hatókörben, általában az aktuális függvényben lehet hozzáférni.
  • A globális változókhoz a programban mindenhol hozzá lehet férni. Emellett a JavaScript futtatókörnyezetéből származó rendszerobjektumokat is tartalmazza, ezért ne lepődjön meg, ha itt nagyon sok elemet lát.
  • A lezárási változók az aktuális lezárásból érhetők el, ha vannak ilyenek. A lezárás egy függvény helyi hatókörét kombinálja az ahhoz tartozó külső függvény hatókörével.

A nyilat választva kibonthatja a hatóköröket és a változókat. Amikor kibontja az objektumokat, láthatja az objektumban definiált összes tulajdonságot.

A változóra duplán kattintva menet közben módosíthatja a változó értékét.

Ha egy függvényparaméterre vagy egy változóra mutat közvetlenül a szerkesztőablakban, annak értékét is megtekintheti.

Screenshot of variable hover during debugging.

Változó figyelése

Nehéz lehet minden alkalommal változó állapotot keresni, amikor nyomon szeretné követni az adott állapotot az idő vagy a különböző függvények között. Ebben segít a Figyelés panel.

A Plusz gombra kattintva megadhat egy változónevet vagy egy figyelendő kifejezést. Egy másik lehetőség, ha a jobb gombbal kattint egy változóra a Változók panelen, majd kiválasztja a Hozzáadás a figyeléshez elemet.

A kód futtatásakor az órapanelen lévő összes kifejezés automatikusan frissül.

Hívássorozat

Minden olyan alkalommal, amikor a program belép egy függvénybe, egy újabb bejegyzés lesz hozzáadva a hívássorozathoz. Ha az alkalmazás összetett, és a függvényeken belül is sokszor meghív függvényeket, a hívássorozatban megjelenik a függvényhívások sorozata.

Nagyon hasznos, ha egy kivétel forrását meg tudjuk keresni. Ha váratlan összeomlást tapasztal a programban, a következőhöz példához hasonlót fog látni a konzolon:

Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at OrderProcessor.OrderQueue.ProcessNewOrders(String[] orderIds) in C:\Users\Repos\OrderProcessor\OrderQueue.cs:line 12
   at OrderProcessor.Program.Main(String[] args) in C:\Users\Repos\OrderProcessor\Program.cs:line 9

A hibaüzenet alatt az at [...] sorok együttesét hívásláncnak nevezzük. A híváslánc minden olyan függvény nevét és forrását tartalmazza, amelyet meghívtak a kivételt megelőzően. A visszafejtése kissé nehéz lehet, mert a .NET-futtatókörnyezetből származó belső függvényeket is tartalmaz.

Ezen a problémán segít a Visual Studio Code Hívássorozat panelje. Kiszűri a szükségtelen információkat, és alapértelmezés szerint csak az Ön saját kódjának releváns függvényeit jeleníti meg. Ezután már megvizsgálhatja ezt a hívássorozatot, és megkeresheti a kivétel forrását.

Töréspontok panel

A Töréspontok panelen megtekintheti és ki- vagy bekapcsolhatja a kódban elhelyezett összes töréspontot. Emellett azt a lehetőséget is ki- vagy bekapcsolhatja, hogy a program megszakadjon kezelt vagy nem kezelt kivételek esetén. A Töréspontok panelen megvizsgálhatja a program állapotát és nyomon követheti az esetleges kivételek forrását a Hívássorozat használatával.

A végrehajtás vezérlése

A program végrehajtási folyamatát az alábbi vezérlőkkel vezérelheti.

Screenshot of Visual Studio Code debugger execution controls.

A vezérlők balról jobbra az alábbiak:

  • Végrehajtás folytatása vagy felfüggesztése: Ha a végrehajtás szüneteltetve van, a következő töréspont beütemezéséig folytatódik. Ha a program fut, a gomb egy szüneteltetés gombra vált, amellyel szüneteltetheti a végrehajtást.
  • Lépés: Végrehajtja a következő kódutasítást az aktuális környezetben.
  • Lépés: A lépéshez hasonlóan, de ha a következő utasítás függvényhívás, lépjen tovább a függvény első kódutasítására (ugyanaz, mint a step parancs).
  • Lépés: Ha egy függvényen belül van, hajtsa végre a függvény fennmaradó kódját, és ugorjon vissza az utasításra a kezdeti függvényhívás után (ugyanaz, mint a out parancs).
  • Újraindítás: Indítsa újra a programot az elejétől kezdve.
  • Leállítás: Fejezd be a végrehajtást, és hagyd ki a hibakeresőt.

A hibakeresési konzol használata

A hibakeresési konzolt a Windowshoz és Linuxhoz készült Ctrl+Shift+Y billentyűkombinációval jelenítheti meg vagy rejtheti el. Mac rendszeren használja a Cmd+Shift+Y billentyűkombinációt. A hibakeresési konzollal megjelenítheti az alkalmazáskonzol naplóit. Azt is használhatja, hogy kiértékelje a kifejezéseket, vagy végrehajtsa a kódot az aktuális végrehajtási tartalomban, például parancsokat vagy változóneveket a beépített .NET-hibakeresőben.

A hibakeresési konzol alján található beviteli mezőbe beírhat egy .NET-kifejezést, majd az Enter elemet választva kiértékelheti. Az eredmény közvetlenül a konzolon jelenik meg.

Screenshot of Visual Studio Code debug console.

A hibakeresési konzol használatával gyorsan ellenőrizheti egy változó értékét, tesztelheti a függvényt különböző értékekkel, vagy módosíthatja az aktuális állapotot.

Megjegyzés:

Bár a hibakeresési konzol nagyon hasznos a .NET-kód végrehajtásához és kiértékeléséhez, kissé zavaró lehet, ha .NET-konzolalkalmazást próbál végrehajtani vagy hibakeresést végezni, mert a hibakeresési konzol nem fogadja el a futó programok terminálbemenetét.

A terminálbemenet hibakeresés közbeni kezeléséhez használhatja az integrált terminált (a Visual Studio Code ablakainak egyikét) vagy egy külső terminált. Ebben az oktatóanyagban az integrált terminált használja majd.

  1. Nyissa meg a .vscode/launch.json fájlt.

  2. Módosítsa a consoleintegratedTerminal beállítását a következőről:

    "console": "internalConsole",
    

    Címzett:

    "console": "integratedTerminal",
    
  3. Módosítások mentése.

A következő leckében megtudhatja, hogyan használhatja a hibakeresőt a korábban látott Fibonacci-kódban található hiba kijavításához.