Ladění aplikace pomocí GitHub Copilotu v sadě Visual Studio
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ěkolik cílových scénářů, včetně následujících:
- Výjimky
- Proměnné
- Zablokování
- Automatické přehledy využití procesoru
Pokud chcete získat pomoc s AI při ladění v těchto scénářích, vyhledejte tlačítko Zeptat se copilotu. V těchto scénářích už Copilot 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ů.
Další informace o doplňování kopírování z GitHubu v sadě Visual Studio najdete v tématu o doplňování kopírování GitHubu v sadě Visual Studio.
Požadavky
Na začátek budete potřebovat:
Visual Studio 2022 verze 17.8 nebo novější
Aktivní předplatné GitHub Copilotu pro jednotlivce nebo GitHub Copilot pro firmy
GitHub Copilot v sadě Visual Studio
-
Poznámka:
Pokud po instalaci rozšíření narazíte na problémy s ověřováním, přečtěte si téma Řešení potíží s ověřováním v chatu GitHub Copilot.
Získání pomoci s AI při ladění aplikace
Následující jednoduchý příklad ukazuje, jak získat pomoc s AI pomocí vloženého zobrazení chatu.
Poznámka:
Nápovědu můžete získat také pomocí samostatného okna Chat výběrem možnosti Zobrazit > chat GitHub Copilot Chat. Další informace najdete v tématu Co je rozšíření GitHub Copilot Chat pro Visual Studio?.
Spuštění ladicí relace
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 , vyberte jazyk 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 do části Nástroje>Získat nástroje a funkce, která otevře Instalační program pro 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ík řešení v pravém podokně.
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"); } }
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]);
Stiskněte klávesu F5 nebo v nabídce Ladění vyberte Spustit ladění.
Aplikace se pozastaví na zarážce. V okně Automatické položky je vidět, že proměnná args má hodnotu
string[0]
.Klikněte pravým tlačítkem do kódu a zvolte Zeptat se Copilotu , aby se otevřelo vložené zobrazení chatu.
Tip
Případně 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 s názvem proměnné a kontextem, takže nemusíte v chatu zadávat kontext sami.
Do vloženého zobrazení chatu zadejte následující otázku:
Why does the args variable have a value of string[0]?
Když stisknete Enter, Copilot poskytne odpověď na základě jeho porozumění kódu. (Může se zobrazit jiná odpověď než zobrazená tady.)
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.
Tip
V vloženém chatu použijte symbol #a v rozevíracím seznamu vyberte konkrétní informace do Copilotu, zatímco na něj ve své otázce odkazujete. 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.
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?"
Copilot zobrazí navrhované opravy kódu.
Pokud chcete použít opravu kódu, zvolte Přijmout.
Zvolte Zrušit , abychom mohli pokračovat ve studiu dalších funkcí copilotu v další části.
Získání pomoci s AI pro výjimku
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
Během pozastavení v ladicím programu pomocí stejné ukázkové aplikace stiskněte klávesu F11 nebo Debug>Step Into a spusťte aktuální příkaz.
Dojde
IndexOutOfRangeException
a aplikace se pozastaví a zobrazí se výjimka.Pokud chcete získat pomoc s AI pro výjimku, pokračujte k další části.
Požádat o pomoc s AI
Pokud je aplikace pozastavená na výjimce, vyberte tlačítko Ask Copilot (Zeptat se zkopírovaného objektu).
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 navrženou opravu kódu, tlačítko pro zkopírování kódu a tlačítko Náhled pro opravu kódu.
Pokud máte dotazy k výjimce, položte je do textového pole Zeptejte se Copilotu.
Vyberte tlačítko Náhled.
Visual Studio zobrazuje náhled kódu s navrženou opravou.
Projděte si navrženou opravu a zvolte Přijmout , aby se použil návrh kódu.
Znovu spusťte ladicí program.
Tentokrát nedojde k žádné výjimce. Bylo opraveno!
Získání pomoci s AI s podmíněnými zarážky a trasovacími body
Copilot nabízí návrhy pro podmíněné zarážky a trasovací body , které jsou specifické pro váš kód.
V tomto příkladu zobrazíme návrhy umělé inteligence pro podmíněnou zarážku. U trasovacích bodů funguje pomoc s AI stejným způsobem.
Odeberte aktuální zarážku tak, že na ni kliknete nebo kliknete pravým tlačítkem myši a zvolíte Odstranit zarážku.
Nahraďte následující řádek kódu:
names.Add("Major Major Major");
tímto kódem:
// names.Add("Major Major Major"); foreach (var item in args) { names.Add("Name: " + item); }
Nalevo od
names.Add("Name: " + item)
příkazu klikněte pravým tlačítkem myši na hřbet a zvolte Vložit podmíněnou zarážku.Vyberte pole výrazu a Copilot začne pracovat na návrzích.
Jakmile se návrhy zobrazí, zvolte jeden z nich, například
item == "John"
. Upravte návrh tak, aby název bylFred
.Testování podmíněného výrazu:
Klikněte pravým tlačítkem myši na projekt ConsoleApp_Copilot v Průzkumník řešení a zvolte Vlastnosti.
Vyberte Ladit>obecné>otevřené uživatelské rozhraní spouštěcích profilů ladění.
Do pole Argumenty příkazového řádku zadejte
5 Fred Joe
na třech samostatných řádcích.Znovu spusťte ladicí program.
Když se ladicí program pozastaví na zarážce, zkontrolujte hodnotu
item
a ověřte, zda jeFred
aktuální hodnota .
Získání pomoci s AI v tabulkovém vizualizéru IEnumerable
Pomoc s AI pro tabulkový vizualizér IEnumerable najdete v tématu Úprava výrazu vizualizéru.
Získání pomoci s AI pro automatické přehledy
Kromě pomoci s interaktivním laděním poskytuje Copilot podrobné informace v nástroji Auto Insights o využití procesoru. Poskytuje informace a přehledy související se sadou konkrétních přehledů výkonu. Pomocí Copilotu položte otázky týkající se funkcí na identifikovaných horkých cestách v kódu, které vám můžou pomoct vytvořit efektivnější nebo nákladově efektivnější kód.
Tlačítko Zeptat se copilotu se zobrazí i v případě, že nejsou identifikovány žádné konkrétní přehledy výkonu. Vyberte Možnost Zeptat se z Copilotu, abyste se mohli učit z Copilotu , a začněte klást otázky.