A Visual Studio Code .NET-hibakeresőjének ismertetése
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.
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.
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.
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.
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.
- A hibakereső indítási vezérlői
- Változók állapota
- Figyelt változók állapota
- Aktuális hívássorozat
- Töréspontok
- Végrehajtási vezérlők
- Aktuális végrehajtási lépés
- 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:
- Indítsa el a hibakeresést.
- Válassza ki az aktív indítási konfigurációt.
- Szerkessze a
launch.json
fájlt. Szükség esetén hozza létre azt. - 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.
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.
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.
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.
Nyissa meg a .vscode/launch.json fájlt.
Módosítsa a
console
integratedTerminal
beállítását a következőről:"console": "internalConsole",
Címzett:
"console": "integratedTerminal",
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.