Sdílet prostřednictvím


Ladění vaší aplikace s GitHub Copilot ve Visual Studiu

V tomto článku se dozvíte, jak efektivněji ladit pomocí GitHub Copilotu. Copilot může poskytnout opravy kódu spolu s hloubkovou analýzou a vysvětlením fungování kódu. Pomáhá s navrhovanými opravami chyb a vysvětluje věci, jako jsou výjimky. Copilot rozumí stackům, strukturám, názvům proměnných a jejich hodnotám. V důsledku toho můžete komunikovat s AI, který má přehled o ladicím programu, a klást podrobné otázky týkající se vašeho kódu a obecně odstraňování chyb.

Kromě toho Copilot poskytuje přesnější nápovědu pro některé specifické cílové scénáře, jako jsou výjimky, a všechny ty, které jsou popsány ve scénářích vylepšených umělou inteligencí pro ladění, uvedených v a. Ve většině těchto scénářů vyhledejte tlačítko Ask CopilotScreenshot tlačítka Ask Copilot. V těchto scénářích už Copilot zná kontext vašich otázek.

Další informace o doplněních GitHub Copilot ve Visual Studio najdete v části O doplněních GitHub Copilot ve Visual Studio.

Požadavky

Abyste mohli začít, potřebujete:

Scénáře vylepšené AI

Copilot rozumí stackům, strukturám, názvům proměnných a jejich hodnotám. V důsledku toho můžete komunikovat s AI, který má přehled o ladicím programu, a klást podrobné otázky týkající se vašeho kódu a obecně odstraňování chyb.

Kromě toho Copilot poskytuje přesnější nápovědu pro některé cílové scénáře, například ty popsané v následující tabulce.

Funkce nebo scénář Odkaz
Výjimky Podívejte se na ladění výjimky s Copilot v tomto článku. Pomoc s výjimkami zahrnuje pomoc při chybách detekce zablokování.
Proměnné Další informace najdete v tématu Získání pomoci s AI.
Analýza dotazů LINQ Při ladění v editoru kódu najeďte myší na dotazy LINQ, abyste viděli vrácenou hodnotu. Pokud potřebujete pomoc s AI, vyberte tlačítko Analyzovat s využitím copilotu . Viz Zobrazení návratových hodnot dotazů LINQ.
Datové tipy Podívejte se na a získejte pomoc umělé inteligence s tipy na data.
Podmíněné zarážky a tracepointy Podívejte se na Získejte návrhy s podmíněnými zarážkami a trasovacími body v tomto článku.
Rychlé akce (žárovka) Podívejte se na Získejte pomoc s AI pomocí rychlých akcí.
Tabulkový vizualizér IEnumerable Další informace najdete v tématu Získání pomoci s AI.
Vložené návratové hodnoty Viz Zobrazení návratových hodnot volání metody.
Vložené hodnoty Podívejte se na Zobrazení vložených hodnot.
Ladění s více vlákny Viz Získání pomoci s AI se zobrazením Vláken.
Testování jednotek Informace o získání pomoci s AI při ladění testů
Zkoumání výjimek v kontextu repozitáře Viz Pomoc s kontextem úložiště pomocí AI
Řešení potíží s body přerušení Další informace najdete v tématu Získání pomoci s AI.

Ve většině těchto scénářů získáte cílovou pomoc pomocí tlačítka Zeptat se copilotana tlačítko Zeptat se copilotu. Nebo tlačítko Analyzovat pomocí copilotu . Copilot už zná kontext vašich otázek. Zná například aktuální zásobník volání, řádek kódu, na který se ptáte, a název výjimky (pokud došlo k výjimce), takže nemusíte v chatu zadávat kontext sami. Copilot také nabízí návrhy pro použití podmíněných zarážek a trasovacích bodů.

Debugování pomocí Copilotu

Následující jednoduchý příklad ukazuje, jak získat asistenci AI pomocí vloženého zobrazení chatu.

Poznámka

Nápovědu můžete získat také v samostatném okně chatu tak, že vyberete Zobrazit > GitHub Copilot Chat. Další informace najdete v tématu Co je rozšíření GitHub Copilot Chat pro Visual Studio?.

Spuštění ladicí relace

  1. V sadě Visual Studio vytvořte novou konzolovou aplikaci jazyka C#.

    V úvodním okně zvolte Vytvořit nový projekt. Do vyhledávacího pole zadejte konzolu, jako jazyk vyberte jazyka C# a pak zvolte Konzolová aplikace pro .NET. Zvolte Další. Zadejte název projektu, například ConsoleApp_Copilot, a vyberte Další.

    Zvolte buď doporučenou cílovou architekturu, nebo .NET 8, a pak zvolte Vytvořit.

    Pokud šablonu projektu konzolové aplikace pro .NET nevidíte, přejděte na Tools>Get Tools and Features, která otevře instalační program sady Visual Studio. Zvolte úlohu vývoje desktopových aplikací .NET a pak zvolte Upravit.

    Visual Studio vytvoří projekt konzoly, který se zobrazí v průzkumníku řešení v pravém podokně.

  2. Nahraďte kód v Program.cs následujícím kódem:

    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. Klikněte pravým tlačítkem myši na následující příkaz a zvolte Zarážku>Vložit zarážku.

    int value = Int32.Parse(args[0]);
    
  4. Stiskněte F5 nebo v nabídce Ladění vyberte Spustit ladění.

    Aplikace se pozastaví na bodu přerušení. V automatickém okně je vidět, že proměnná args má hodnotu string[0].

    snímek obrazovky okna Automatů

  5. Klikněte pravým tlačítkem do kódu a zvolte Zeptat se Copilotu, abyste otevřeli vložené zobrazení chatu.

    Rada

    Alternativně můžete kliknout pravým tlačítkem myši na proměnnou v okně Automatické hodnoty nebo Místní hodnoty nebo v datovém tipu a zvolit Ask Copilot. To poskytuje Copilotu název proměnné a kontext, takže nemusíte v chatu zadávat kontext sami.

  6. Do integrovaného zobrazení chatu zadejte následující otázku:

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

    snímek obrazovky chatu Copilot.

    Když stisknete Enter, Copilot poskytne odpověď na základě svého porozumění kódu. (Může se zobrazit jiná odpověď než zobrazená tady.)

    snímek obrazovky s otázkou zodpovězenou Copilotem

    Pokud má Copilot pro váš kód navrženou opravu, zobrazí se vám. Pokud ne, můžete požádat Copilot o návrh kódu.

    Rada

    Ve vloženém chatu použijte symbol "#" a v rozevíracím seznamu vyberte, které konkrétní informace předáte Copilotu, zatímco na ně odkazujete ve své otázce. Pokud například vyberete část kódu a potom zadáte #, můžete tento výběr vybrat z rozevíracího seznamu #. Pomocí symbolu #můžete také odkazovat na funkce integrovaného vývojového prostředí (IDE), které se zobrazují v rozevíracím seznamu, například v okně Místní hodnoty.

  7. V tomto příkladu se posuňte na konec odpovědi Copilot a vyberte na konci vloženého okna Chatu následující otázku: "Jak můžu zpracovat případ, když do programu nejsou předány žádné argumenty?"

    snímek obrazovky s následnou otázkou copilotu

    Copilot zobrazí navrhované opravy kódu.

    snímek obrazovky s navrhovanou opravou Copilot

    Pokud chcete použít opravu kódu, zvolte Přijmout.

  8. Zvolte Zrušit, abychom mohli pokračovat ve studiu dalších funkcí copilotu v další části.

Odladit výjimku pomocí Copilotu

Následující jednoduchý příklad ukazuje, jak získat pomoc s AI, když narazíte na výjimku a jak rychle aktualizovat kód na základě navrhovaných oprav AI.

Spuštění ladicí relace

  • Když je ladicí program pozastaven ve stejné ukázkové aplikaci, stiskněte F11 nebo Ladit>Vstoupit, abyste spustili aktuální příkaz.

    Dojde k IndexOutOfRangeException a aplikace se pozastaví a zobrazí se výjimka.

    Pokud chcete získat pomoc od AI s výjimkou, pokračujte do další části.

Požádat o pomoc s AI

  1. Když je aplikace na výjimce pozastavená, vyberte tlačítko Ask Copilot.

    snímek obrazovky s tlačítkem Zeptat se Copilotu při výskytu výjimky

    Pokud ještě není otevřený, zobrazí se okno chatu Copilot a zobrazí posouzení chyby a důvod, proč k ní došlo. V tomto příkladu Copilot identifikuje navrhovanou opravu kódu, tlačítko pro kopírování kódu a tlačítko Náhled pro náhled opravy kódu.

    Pokud máte dotazy k výjimce, položte je do textového pole Zeptejte se Copilotu.

  2. Vyberte tlačítko Náhled.

    snímek obrazovky s tlačítkem Náhled v okně chatu Copilot

    Visual Studio zobrazuje náhled kódu s navrženou opravou.

  3. Projděte si navrhované opravy a vyberte Přijmout pro použití návrhu kódu.

    snímek obrazovky s náhledem kódu v Visual Studio

  4. Restartujte debugger.

    Tentokrát nedojde k žádné výjimce. Bylo opraveno!

Získejte návrhy pomocí podmíněných zarážek a trasovacích bodů

Copilot nabízí návrhy podmíněných zarážek a trasovacích bodů, které jsou specifické pro váš kód.

V tomto příkladu zobrazíme návrhy umělé inteligence pro podmíněný bod přerušení. U trasovacích bodů funguje pomoc s AI stejným způsobem.

  1. Odeberte aktuální zarážku tak, že na ni kliknete nebo kliknete pravým tlačítkem myši a zvolíte Odstranit zarážku.

  2. Nahraďte následující řádek kódu:

    names.Add("Major Major Major");
    

    s tímto:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. Nalevo od příkazu names.Add("Name: " + item) klikněte pravým tlačítkem v okraji a zvolte Vložit podmíněnou zarážku.

  4. Vyberte pole výrazu a Copilot začne pracovat na návrzích.

    Snímek obrazovky ukazující Copilot pracující s návrhy podmíněných zarážek.

  5. Jakmile se návrhy zobrazí, zvolte některou z nich, například item == "John". Upravte návrh tak, aby byl název Fred.

    Snímek obrazovky s návrhem Copilotu pro podmíněný bod přerušení

  6. Testování podmíněného výrazu:

    1. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt ConsoleApp_Copilot a zvolte Vlastnosti.

    2. Vyberte Ladění>Obecné>Otevřete UI pro spuštění profilů ladění.

    3. Do pole Argumenty příkazového řádku zadejte 5 Fred Joe, a to na tři samostatné řádky.

      snímek obrazovky se zadáváním argumentů příkazového řádku pro projekt

    4. Restartujte debugger.

    Až se ladicí nástroj zastaví na zarážce, zkontrolujte hodnotu item a ověřte, že aktuální hodnota je Fred.