Hibakeresés az alkalmazásban a GitHub Copilot segítségével a Visual Studio-ban

Ebben a cikkben megtudhatja, hogyan végezhet hatékonyabb hibakeresést GitHub Copilot használatával. Copilot a kódjavítások részletes elemzésével és a kód működésével kapcsolatos magyarázatokkal is szolgálnak. Segít a hibák javasolt javításában, és elmagyarázza az olyan dolgokat, mint a kivételek. Copilot ismeri a hívásvermeket, a kereteket, a változóneveket és az értékeket. Ennek eredményeképpen a hibakeresővel tisztában lévő mesterséges intelligenciával együttműködve részletes kérdéseket tehet fel a kóddal és általában a hibakeresési problémákkal kapcsolatban.

Emellett a Copilot pontosabb segítséget nyújt bizonyos célzott forgatókönyvekhez, például a Kivételekhez, valamint a AI által bővített hibakeresési forgatókönyvekhez. A legtöbb ilyen forgatókönyvben keresse meg a Ask CopilotAz Ask Copilot gomb képernyőképe. vagy Elemezze a Copilot segítségével gombot. Ezekben a forgatókönyvekben Copilot már ismeri a kérdések kontextusát.

A Visual Studio-ban található GitHub Copilot kiegészítésekről a GitHub Copilot kiegészítések a Visual Studio-ban című részben talál további információt.

Előfeltételek

Az első lépésekhez a következőkre van szüksége:

AI-továbbfejlesztett forgatókönyvek

Copilot ismeri a hívásvermeket, a kereteket, a változóneveket és az értékeket. Ennek eredményeképpen a hibakeresővel tisztában lévő mesterséges intelligenciával együttműködve részletes kérdéseket tehet fel a kóddal és általában a hibakeresési problémákkal kapcsolatban.

Emellett Copilot pontosabb segítséget nyújt bizonyos célzott forgatókönyvekhez, például az alábbi táblázatban ismertetettekhez.

Funkció vagy forgatókönyv Hivatkozás
Hibakereső ügynök Lásd ebben a cikkben a Hibakereső ügynök segítségével történő Agentic hibafeloldást. Végpontok közötti ügynöki munkafolyamat, amely reprodukálja a hibákat, rögzíti az alkalmazást, és élő futtatókörnyezeti adatokkal ellenőrzi a javításokat.
Hívásveremelemzés Lásd: A hívásverem elemzése a Copilot segítségével. Egykattintásos elemzést kaphat a szál működéséről, beleértve az aszinkron folyamat magyarázatait is.
Kivételek Tekintse meg a Copilot segítségével történő kivétel hibakeresését ebben a cikkben. A kivételekkel kapcsolatos súgó tartalmazza a holtpont észlelési hibáival kapcsolatos súgót.
Változók Lásd: AI-segítség kérése.
LINQ-lekérdezéselemzés Vigye az egérmutatót a LINQ-lekérdezések fölé, miközben hibakeresést végzett a kódszerkesztőben a visszatérési érték megtekintéséhez. Válassza az "Elemzés a Copilottal" gombot AI támogatásért. Lásd: LINQ-lekérdezések visszatérési értékeinek megtekintése.
Adattippek Tekintse meg az AI-segítséget az adattippekkel kapcsolatban.
Feltételes töréspontok és nyomkövetési pontok Lásd ebben a cikkben a javaslatok megtekintése feltételes töréspontokkal és nyomkövetési pontokkal részt.
Gyorsműveletek (villanykörte) Lásd: Kérjen AI-segítséget a gyorsműveletekhez.
IEnumerable táblázatos vizualizáció Lásd: AI-segítség kérése.
Automatikus észlelés és formázás a Szövegábrázolóban Lásd: Automatikus észlelés és formázás. A Copilot automatikusan azonosítja a kódolt vagy tömörített sztringeket, és egyetlen kattintással dekódolja őket.
Sorba illesztett visszaadott értékek Lásd: Metódushívások visszatérési értékeinek megtekintése.
Beágyazott értékek Lásd Beágyazott értékek megtekintése.
Többszálas hibakeresés Lásd: AI-segítség kérése a Szálak nézethez.
Egységtesztelés Lásd: AI-segítség kérése a tesztek hibakereséséhez
Kivételek vizsgálata adattárkörnyezettel Lásd: AI-segítség kérése adattárkörnyezettel
Töréspontok hibaelhárítása Lásd: AI-segítség kérése.
Funkció vagy forgatókönyv Hivatkozás
Hívásveremelemzés Lásd: A hívásverem elemzése a Copilot segítségével. Egykattintásos elemzést kaphat a szál működéséről, beleértve az aszinkron folyamat magyarázatait is.
Kivételek Tekintse meg a Copilot segítségével történő kivétel hibakeresését ebben a cikkben. A kivételekkel kapcsolatos súgó tartalmazza a holtpont észlelési hibáival kapcsolatos súgót.
Változók Lásd: AI-segítség kérése.
LINQ-lekérdezéselemzés Vigye az egérmutatót a LINQ-lekérdezések fölé, miközben hibakeresést végzett a kódszerkesztőben a visszatérési érték megtekintéséhez. Válassza az "Elemzés a Copilottal" gombot AI támogatásért. Lásd: LINQ-lekérdezések visszatérési értékeinek megtekintése.
Adattippek Tekintse meg az AI-segítséget az adattippekkel kapcsolatban.
Feltételes töréspontok és nyomkövetési pontok Lásd ebben a cikkben a javaslatok megtekintése feltételes töréspontokkal és nyomkövetési pontokkal részt.
Gyorsműveletek (villanykörte) Lásd: Kérjen AI-segítséget a gyorsműveletekhez.
IEnumerable táblázatos vizualizáció Lásd: AI-segítség kérése.
Sorba illesztett visszaadott értékek Lásd: Metódushívások visszatérési értékeinek megtekintése.
Beágyazott értékek Lásd Beágyazott értékek megtekintése.
Többszálas hibakeresés Lásd: AI-segítség kérése a Szálak nézethez.
Egységtesztelés Lásd: AI-segítség kérése a tesztek hibakereséséhez
Kivételek vizsgálata adattárkörnyezettel Lásd: AI-segítség kérése adattárkörnyezettel
Töréspontok hibaelhárítása Lásd: AI-segítség kérése.

A legtöbb ilyen esetben célzott segítséget kaphat a Ask CopilotAsk Copilot gomb képernyőképe. vagy az Analyze with Copilot gombbal. Copilot már ismeri a kérdések kontextusát. Ismeri például az aktuális hívási vermet, a kért kódsort és a kivétel nevét (ha történt), így nem kell saját kontextust megadnia a csevegésben. Copilot a feltételes töréspontok és nyomkövetési pontok használatára vonatkozó javaslatokat is tartalmaz.

Hibakeresés Copilot használatával

Az alábbi egyszerű példa bemutatja, hogyan kérhet AI-segítséget a beágyazott csevegési nézettel.

Jegyzet

A View > GitHub Copilot Chat kiválasztásával a különálló csevegőablakban is kérhet segítséget. További információ: Mi a GitHub Copilot Chat bővítmény a Visual Studio?.

Hibakeresési munkamenet indítása

  1. A Visual Studio hozzon létre egy új C#-konzolalkalmazást.

    A kezdési ablakban válassza az Új projekt létrehozásalehetőséget. Írja be a console kifejezést a keresőmezőbe, válassza a C# nyelvet, majd válassza a Console App lehetőséget .NET. Válassza a Következőlehetőséget. Írjon be egy projektnevet, például ConsoleApp_Copilot, és válassza Következőlehetőséget.

    Válassza ki a javasolt cél keretrendszert vagy .NET 10-et, majd válassza a Create lehetőséget.

    Ha nem látja a Console App .NET projektsablonját, lépjen a Tools>Get Tools and Features lapra, amely megnyitja a Visual Studio Telepítőt. Válassza ki az .NET asztali fejlesztés számítási feladatot, majd válassza a Modify lehetőséget.

    Visual Studio hozza létre a konzolprojektet, amely a jobb oldali panelen Solution Explorer jelenik meg.

  2. Cserélje le a Program.cs kódját a következő kódra:

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
        public static void Main(string[] args)
        {
            int value = Int32.Parse(args[0]);
            List<String> names = null;
            if (value > 0)
                names = new List<String>();
    
            names.Add("Major Major Major");
        }
    }
    
  3. Kattintson a jobb gombbal a következő utasításra, és válassza a Töréspont>Töréspont beszúrásalehetőséget.

    int value = Int32.Parse(args[0]);
    
  4. Nyomja le F5, vagy válassza Hibakeresés indítása lehetőséget a Hibakeresés menüből.

    Az alkalmazás szünetel a töréspontnál. Az Autos ablak azt mutatja, hogy az args változó értéke string[0].

    Automatikus ablak képernyőképe.

  1. Kattintson a jobb gombbal a kódra, és válassza a Csevegés lehetőséget a beágyazott Csevegés nézet megnyitásához.
  1. Kattintson a jobb gombbal a kódra, és válassza a Ask Copilot lehetőséget a beágyazott csevegési nézet megnyitásához.

Tipp

Másik lehetőségként kattintson a jobb gombbal egy változóra az Automatikus vagy helyi beállítások ablakban, vagy egy adattippben, és válassza a Ask Copilot lehetőséget. A Copilot a változó nevét és a kontextust biztosítja, ezért nem kell önnek a kontextust önállóan megadnia a csevegésben.

  1. Írja be a következő kérdést a beágyazott csevegési nézetben:

    Why does the args variable have a value of string[0]?
    

A beágyazott Copilot Chat képernyőképe.

A Enter lenyomásakor Copilot a kód ismerete alapján választ ad. (Előfordulhat, hogy az itt láthatótól eltérő választ kap.)

A Copilot által megválaszolt kérdés képernyőképe.

Ha a Copilotnak van javasolt javítása a kódhoz, azt megjeleníti. Amennyiben nem, kérhet a Copilottól egy kód javaslatot.

Tipp

A beágyazott csevegésben használja a "#" szimbólumot, és válassza ki a legördülő listából a kívánt információt, hogy átadja azt a Copilotnak, miközben a kérdésben hivatkozik rá. Ha például kiválaszt egy részt a kódból, és ezután beírja a # jelet, akkor ezt a kijelölést kiválaszthatja a # legördülő listából. A "#" szimbólummal hivatkozhat a legördülő listában megjelenő IDE-funkciókra, például a Helyiek ablakra.

  1. Ebben a példában görgessen a Copilot válasz végéhez, és válassza ki a következő kérdést a beágyazott csevegés ablakának végén: "Hogyan kezelhetem az esetet, ha nem adnak át argumentumokat a programnak?"

    A Copilot nyomon követési kérdés képernyőképe.

    Copilot a kód javasolt javítását jeleníti meg.

    A Copilot által javasolt javítás képernyőképe.

    Ha alkalmazni szeretné a kódjavítást, válassza a Tab lehetőséget.

  2. Válassza a Alt+Törlés lehetőséget, hogy a következő szakaszban megismerhessük a Copilot egyéb funkcióit.

A beágyazott Copilot Chat képernyőképe.

A Enter lenyomásakor Copilot a kód ismerete alapján választ ad. (Előfordulhat, hogy az itt láthatótól eltérő választ kap.)

A Copilot által megválaszolt kérdés képernyőképe.

Ha a Copilotnak van javasolt javítása a kódhoz, azt megjeleníti. Amennyiben nem, kérhet a Copilottól egy kód javaslatot.

Tipp

A beágyazott csevegésben használja a "#" szimbólumot, és válassza ki a legördülő listából a kívánt információt, hogy átadja azt a Copilotnak, miközben a kérdésben hivatkozik rá. Ha például kiválaszt egy részt a kódból, és ezután beírja a # jelet, akkor ezt a kijelölést kiválaszthatja a # legördülő listából. A "#" szimbólummal hivatkozhat a legördülő listában megjelenő IDE-funkciókra, például a Helyiek ablakra.

  1. Ebben a példában görgessen a Copilot válasz végéhez, és válassza ki a következő kérdést a beágyazott csevegés ablakának végén: "Hogyan kezelhetem az esetet, ha nem adnak át argumentumokat a programnak?"

    A Copilot nyomon követési kérdés képernyőképe.

    Copilot a kód javasolt javítását jeleníti meg.

    Képernyőkép a Copilot által javasolt javításról.

    Ha alkalmazni szeretné a kódjavítást, válassza az Elfogadáslehetőséget.

  2. Válassza a Cancel lehetőséget, hogy a következő szakaszban megismerhessük a Copilot egyéb funkcióit.

Copilot kivétel hibakeresése

Az alábbi egyszerű példa bemutatja, hogyan kérhet AI-segítséget, ha kivételt tapasztal, és hogyan frissítheti a kódot az AI által javasolt javítások alapján.

Hibakeresési munkamenet indítása

  • Szüneteltetéskor a hibakeresőben ugyanazzal a mintaalkalmazással nyomja meg az F11 vagy a Hibakeresés>Lépés bele gombot az aktuális utasítás végrehajtásához.

    Egy IndexOutOfRangeException történik, és az alkalmazás szünetel, megjelenítve a kivételt.

    Ha AI-segítséget szeretne kérni a kivételhez, folytassa a következő szakaszsal.

AI-segítség kérése

  1. Miután az alkalmazás megállt a kivételnél, válassza az Analyze with Copilot gombot.

    Az Ask Copilot gomb képernyőképe egy kivételben.

    Ha még nincs megnyitva, megjelenik a Copilot Chat ablak, amely kiértékeli a hibát és annak okát. Ebben a példában Copilot azonosítja a javasolt kódjavítást, a kód másolására szolgáló gombot, valamint egy Preview gombot a kódjavításhoz.

    Ha kérdése van a kivétellel kapcsolatban, kérdezze meg őket a Ask Copilot szövegmezőben.

    Nézet gomb képernyőképe a Copilot Chat window.

  2. A Copilot csevegőablakban mondja meg Copilot, hogy meg szeretné akadályozni a hibát.

  3. Amikor Copilot javasol javítást a csevegőablakban, válassza a Apply lehetőséget.

  4. Tekintse át a javasolt javítást, és válassza a Tab billentyűt a kódjavaslat alkalmazásához.

    A kód előnézetének képernyőképe a Visual Studio.

  5. Indítsa újra a hibakeresőt.

    Ezúttal nem történik kivétel. Kijavítottuk!

  1. Ha az alkalmazás szüneteltetve van a kivételen, válassza a Ask Copilot gombot.

    Az Ask Copilot gomb képernyőképe egy kivételben.

    Ha még nincs megnyitva, megjelenik a Copilot Chat ablak, amely kiértékeli a hibát és annak okát. Ebben a példában Copilot azonosítja a javasolt kódjavítást, a kód másolására szolgáló gombot, valamint egy Preview gombot a kódjavításhoz.

    Ha kérdése van a kivétellel kapcsolatban, kérdezze meg őket a Ask Copilot szövegmezőben.

  2. Válassza a Előnézet gombot.

    Nézet gomb képernyőképe a Copilot Chat window.

    Visual Studio a javasolt javítást tartalmazó kód előnézetét jeleníti meg.

  3. Tekintse át a javasolt javítást, és válassza az Elfogadás lehetőséget a kódjavaslat alkalmazásához.

    A kód előnézetének képernyőképe a Visual Studio.

  4. Indítsa újra a hibakeresőt.

    Ezúttal nem történik kivétel. Kijavítottuk!

Ügynöki hibafeloldás a Hibakereső ügynökkel

A Hibakereső ügynök egy végpontok közötti automatikus munkafolyamatot biztosít, amely statikus elemzés helyett a hibákat a valós futásidejű viselkedés alapján ellenőrzi. A felhasználói élmény végigvezeti egy teljes cikluson: a probléma megértésén és reprodukálásán, az alkalmazás műszerezésén, a kiváltó ok elkülönítésén és a javítás élő futtatással való ellenőrzésén.

Az GitHub vagy a Azure DevOps problémáiból kiindulva vagy a hiba természetes nyelven írható le. A Hibakereső ügynök leképozza a problémát a helyi forráskódra, és végigvezeti a megoldáson. A hibakeresési folyamat során kommunikálhat az ügynökkel, hogy több bemenetet biztosítson, megbeszélje az elméletét, vagy valós időben pontosítsa a javítást.

A Hibakereső ügynök használata:

  1. Nyissa meg a Copilot Chat ablakot (View > GitHub Copilot Chat).
  2. Válassza a Hibakereső lehetőséget a csevegőablak bal alsó sarkában található mód legördülő menüből.
  3. Adjon meg egy GitHub vagy Azure DevOps problémahivatkozást, vagy írja le a hibát természetes nyelven.

Képernyőkép, amely az ügynökválasztót egyéni ügynökökkel mutatja a Visual Studio-ban.

A Hibakereső ügynök a következő lépéseken keresztül működik:

  • Környezetinjektálás – Összekapcsolja a problémát vagy a hiba leírását a helyi forráskóddal.
  • Autonóm reprodukáló – Elemzi a hibát, és ha a reprodukciós lépések hiányoznak, minimális forgatókönyvet hoz létre a hiba aktiválásához.
  • Hipotézis és instrumentálás – Hibahipotéziseket generál, és nyomkövetési pontokkal és feltételes töréspontokkal instrumentálja az alkalmazást, hogy a futásidejű állapotot rögzítse.
  • Futtatókörnyezet ellenőrzése – Futtatja a hibakeresési munkamenetet, és elemzi az élő telemetriát a kiváltó ok elkülönítése érdekében.
  • Célzott javítás – Pontos javítást javasol a pontos meghibásodási ponton a széles körű újrabontás helyett.
  • Végleges emberi ellenőrzés – Újrafuttathatja a forgatókönyvet, és megerősítheti a javítást az ügynökkel együtt az élő környezetben.

Amikor Ügynök módban cseveg, a csevegőbemenetben a @debugger használatával átválthat a Hibakereső ügynökre is. A Debugger ügynökről és más beépített ügynökökről további információkért tekintse meg a GitHub Copilot beépített és egyéni ügynökeinek használata című részt.

Javaslatok lekérése feltételes töréspontok és nyomkövetési pontok használatával

Copilot javaslatokat ad feltételes töréspontokra és nyomkövetési pontokra, amelyek a kódodhoz kapcsolódnak.

Ebben a példában a feltételes töréspontra vonatkozó AI-javaslatokat mutatunk be. A nyomkövetési pontok esetében az AI-támogatás ugyanúgy működik.

  1. Az aktuális töréspont eltávolításához kattintson rá, vagy kattintson rá a jobb gombbal, és válassza a Töréspont törléselehetőséget.

  2. Cserélje le a következő kódsort:

    names.Add("Major Major Major");
    

    a következővel:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. A(z) names.Add("Name: " + item) utasítástól balra kattintson a jobb gombbal a margóra, és válassza a(z) Feltételes töréspont beszúrásalehetőséget.

  4. Jelölje ki a kifejezésmezőt, és Copilot elkezd dolgozni a javaslatokon.

    A feltételes töréspont-javaslatokon dolgozó Copilot képernyőképe

  1. Amikor megjelennek a javaslatok, válasszon egyet, például item == "Test". Módosítsa a javaslatot, hogy a név Fredlegyen.

    Egy feltételes töréspont Copilot-javaslatának képernyőképe.

  1. Amikor megjelennek a javaslatok, válasszon egyet, például item == "John". Módosítsa a javaslatot, hogy a név Fredlegyen.

    Feltételes töréspont Copilot javaslatának képernyőképe.

  1. A feltételes kifejezés tesztelése:

    1. Kattintson a jobb gombbal a ConsoleApp_Copilot projektre Solution Explorer, és válassza a Properties lehetőséget.

    2. Válassza a Hibakeresés>Általános>Hibakeresési indítási profilok kezelőfelületének megnyitásalehetőséget.

    3. A parancssori argumentumok mezőben adja meg a 5 Fred Joe, három külön sorban.

      Képernyőkép a projekt parancssori argumentumainak megadásáról.

    4. Indítsa újra a hibakeresőt.

    Amikor a hibakereső szünetel a töréspontnál, ellenőrizze a item értékét, és ellenőrizze, hogy az aktuális érték Fred-e.