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í zásobníkům volání, rámcům, názvům proměnných a hodnotám. V důsledku toho můžete interagovat s AI pracujícím s ladicím programem a pokládat podrobné otázky související s vaším kódem a obecně s laděním problémů.

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:

Ladě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 okně Automatické položky 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.

Ladění výjimky 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ý pomocí stejné ukázkové aplikace, stiskněte F11 nebo Ladit>Krok Do a spusťte 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 ladicí program.

    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 ladicí program.

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

Scénáře vylepšené AI

Copilot rozumí zásobníkům volání, rámcům, názvům proměnných a hodnotám. V důsledku toho můžete interagovat s AI pracujícím s ladicím programem a pokládat podrobné otázky související s vaším kódem a obecně s laděním problémů.

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é Viz ladění pomocí Copilot v tomto článku .
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í.
IEnumerable tabulkový vizualizér Viz Upravte výraz vizualizéru.
Vložené návratové hodnoty Viz Zobrazení návratových hodnot volání metody.
Souhrnné popisy vláken Viz zobrazení vláken (paralelní zásobníky).
Automatické přehledy pro profilaci Viz Získejte pomoc s AI pomocí automatických přehledů.

Ve většině těchto scénářů obdržíte cílenou asistenci použitím tlačítka Ask Copilot. Screenshot tlačítka. 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ů.