Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak efektivněji ladit pomocí GitHub Copilotu. Copilot může poskytovat 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 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, jako jsou výjimky, a všechny scénáře popsané v AI pro ladění. Ve většině těchto scénářů vyhledejte Ask Copilot
nebo Analyze pomocí tlačítka Copilot. V těchto scénářích Copilot už zná kontext vašich otázek.
Další informace o doplňování GitHub Copilot v Visual Studio najdete v tématu Okončování GitHub Copilot v Visual Studio.
Požadavky
Abyste mohli začít, potřebujete:
Visual Studio 2022 version 17.8 nebo novější
Přihlaste se do Visual Studio pomocí účtu GitHub s přístupem do Copilot
** Můžete použít GitHub Copilot zdarma. Zaregistrujte se a využijte AI k rychlejšímu a efektivnějšímu psaní kódu.Poznámka
Pokud po instalaci rozšíření narazíte na problémy s ověřováním, přečtěte si téma Odstraňování problémů s ověřováním u GitHub Copilot Chat.
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 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 |
|---|---|
| Agent ladicího programu | Podívejte se na řešení chyb pomocí ladicího agenta v tomto článku. Komplexní agentní pracovní postup, který reprodukuje chyby, instrumentuje vaši aplikaci a ověřuje opravy pomocí živých dat za běhu. |
| Analýza zásobníku volání | Podívejte se na analyzování zásobníku volání pomocí Copilotu. Získejte analýzu toho, co vaše vlákno dělá jedním kliknutím, včetně vysvětlení asynchronního toku. |
| Výjimky | Viz Debug 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 Analyze s Copilot. 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. |
| Automatické rozpoznání a formátování ve Vizualizéru textu | Viz Automatické rozpoznání a formátování. Copilot automaticky identifikuje kódované nebo komprimované řetězce a dekóduje je jediným kliknutím. |
| 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. |
| Funkce nebo scénář | Odkaz |
|---|---|
| Analýza zásobníku volání | Podívejte se na analyzování zásobníku volání pomocí Copilotu. Získejte analýzu toho, co vaše vlákno dělá jedním kliknutím, včetně vysvětlení asynchronního toku. |
| Výjimky | Viz Debug 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 Analyze s Copilot. 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ílenou pomoc pomocí tlačítka Ask Copilot
nebo Analyze pomocí tlačítka Copilot. 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 na použití podmíněných přerušení a trasovacích bodů.
Ladit pomocí Copilot
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 View > GitHub Copilot Chat. Další informace najdete v tématu Co je rozšíření Copilot Chat GitHubu pro Visual Studio?.
Spuštění ladicí relace
V Visual Studio vytvořte novou konzolovou aplikaci jazyka C#.
V úvodním okně zvolte Vytvořit nový projekt. Do vyhledávacího pole zadejte konsole, jako jazyk vyberte C# a jako jazyk zvolte Konsole App pro .NET. Zvolte Další. Zadejte název projektu, například ConsoleApp_Copilot, a vyberte Další.
Zvolte doporučenou cílovou architekturu nebo .NET 10 a pak zvolte Create.
Pokud nevidíte šablonu projektu Konsole App pro .NET, přejděte na Tools>Get Tools and Features, která otevře instalační program Visual Studio. Zvolte .NET desktopový vývoj a pak zvolte Upravit.
Visual Studio vytvoří projekt konzoly, který se zobrazí v Solution Explorer 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 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].
- Klikněte pravým tlačítkem do kódu a zvolte Chat a otevřete vložené zobrazení chatu.
- Klikněte pravým tlačítkem myši na kód a zvolte Ask Copilot a otevřete vložené zobrazení chatu.
Rada
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 název a kontext proměnné pro Copilot, takže nepotřebujete sami zadávat kontext v chatu.
Do integrované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 návrh opravy vašeho kódu, 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 konkrétní informace, které předáte Copilotovi, když na ni 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.
V tomto příkladu se posuňte na konec Copilot odpovědi 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 vám zobrazí navrhovanou opravu kódu.
Pokud chcete použít opravu kódu, vyberte Tab.
Vyberte Alt+Delete, abychom mohli pokračovat ve studiu dalších funkcí Copilot v další části.
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 návrh opravy vašeho kódu, 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 konkrétní informace, které předáte Copilotovi, když na ni 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.
V tomto příkladu se posuňte na konec Copilot odpovědi 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 vám zobrazí navrhovanou opravu kódu.
Pokud chcete použít opravu kódu, zvolte Přijmout.
Zvolte Cancel, abychom mohli pokračovat ve studiu dalších funkcí Copilot v další části.
Ladění výjimky pomocí Copilot
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
IndexOutOfRangeExceptiona 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
Při pozastavení aplikace na výjimce vyberte tlačítko Analyze with Copilot.
Pokud ještě není otevřený, zobrazí se okno Copilot Chat a zobrazí se posouzení chyby a důvod, proč k ní došlo. V tomto příkladu Copilot identifikuje navrhovaná oprava kódu, tlačítko pro kopírování kódu a tlačítko Preview pro opravu kódu.
Pokud máte dotazy k výjimce, položte je do textového pole Ask Copilot.
V okně chatu Copilot řekněte Copilot, že chcete, aby se zabránilo chybě.
Když Copilot navrhne opravu v okně chatu, vyberte Apply.
Prostudujte navrhovanou opravu a stisknutím klávesy Tab aplikujte návrh kódu.
Restartujte debugger.
Tentokrát nedojde k žádné výjimce. Bylo opraveno!
Když je aplikace na výjimce pozastavená, vyberte tlačítko Ask Copilot.
Pokud ještě není otevřený, zobrazí se okno Copilot Chat a zobrazí se posouzení chyby a důvod, proč k ní došlo. V tomto příkladu Copilot identifikuje navrhovaná oprava kódu, tlačítko pro kopírování kódu a tlačítko Preview pro opravu kódu.
Pokud máte dotazy k výjimce, položte je do textového pole Ask Copilot.
Vyberte tlačítko Náhled.
Visual Studio zobrazuje náhled kódu s navrhovanou opravou.
Projděte si navrhované opravy a vyberte Přijmout pro použití návrhu kódu.
Restartujte debugger.
Tentokrát nedojde k žádné výjimce. Bylo opraveno!
Řešení chyb pomocí ladicího agenta
Agent ladicího programu poskytuje komplexní pracovní postup agenta, který ověřuje chyby proti skutečnému chování za běhu místo toho, aby se spoléhal na statickou analýzu. Prostředí vás provede kompletní smyčkou agentů: pochopení a reprodukci problému, instrumentace aplikace, izolace původní příčiny a ověření opravy prostřednictvím živého spuštění.
Můžete začít od problému v GitHub nebo Azure DevOps nebo popsat chybu v přirozeném jazyce. Agent ladicího programu namapuje problém na místní zdrojový kód a provede vás procesem řešení. Během procesu ladění můžete s agentem komunikovat, abyste mohli poskytnout více informací, prodiskutovat svou teorii nebo upřesnit opravu v reálném čase.
Jak používat agenta ladicího programu:
- Otevřete okno Copilot Chat (View > GitHub Copilot Chat).
- V rozevíracím seznamu režimu v levém dolním rohu okna chatu vyberte Debugger.
- Zadejte odkaz na GitHub nebo Azure DevOps problém nebo popište chybu v přirozeném jazyce.
Agent ladicího programu funguje pomocí následujících kroků:
- Injektáž kontextu – Připojí problém nebo popis chyby k místnímu zdrojovému kódu.
- Autonomní reprodukční nástroj – analyzuje chybu a pokud chybí kroky pro reprodukci, vytvoří minimální scénář pro aktivaci selhání.
- Hypotézy a instrumentace – Generuje hypotézy o selhání a instrumentuje vaši aplikaci pomocí trasovacích bodů a podmíněných zarážek pro zachycení běhového stavu.
- Ověření za chodu – spustí ladicí relaci a analyzuje živou telemetrii za účelem izolace původní příčiny.
- Cílová oprava – navrhuje přesnou opravu v přesném bodě selhání místo rozsáhlého refaktoringu.
- Konečné ověření člověka – znovu spustíte scénář a potvrdíte opravu v živém prostředí společně s agentem.
Pokud jste v režimu agenta v chatu, můžete také přepnout na agenta ladicího programu pomocí @debugger ve vstupu chatu. Další informace o agentu ladicího programu a dalších integrovaných agentech najdete v tématu Použít integrované a vlastní agenty s GitHub Copilot.
Získejte návrhy pomocí podmíněných zarážek a trasovacích bodů
Copilot nabízí návrhy na podmíněné zarážky a trasovací body 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.
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");s tímto:
// names.Add("Major Major Major"); foreach (var item in args) { names.Add("Name: " + item); }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.Vyberte pole výrazu a Copilot začne pracovat na návrzích.
Jakmile se návrhy zobrazí, zvolte jeden, například
item == "Test". Upravte návrh tak, aby byl názevFred.
Jakmile se návrhy zobrazí, zvolte některou z nich, například
item == "John". Upravte návrh tak, aby byl názevFred.
Testování podmíněného výrazu:
Klikněte pravým tlačítkem na projekt ConsoleApp_Copilot v Solution Explorer a zvolte Properties.
Vyberte Ladění>Obecné>Otevřete UI pro spuštění profilů ladění.
Do pole Argumenty příkazového řádku zadejte
5 Fred Joe, a to na tři samostatné řádky.
Restartujte debugger.
Až se ladicí nástroj zastaví na zarážce, zkontrolujte hodnotu
itema ověřte, že aktuální hodnota jeFred.