Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule dowiesz się, jak wydajniej debugować przy użyciu narzędzia GitHub Copilot. Copilot może dostarczać poprawki kodu wraz ze szczegółową analizą i wyjaśnieniami sposobu działania kodu. Pomaga to w proponowanych poprawkach błędów i wyjaśnia takie elementy jak wyjątki. Copilot rozumie stosy wywołań, ramki, nazwy zmiennych i wartości. W rezultacie możesz wchodzić w interakcje ze sztuczną inteligencją zaprogramowaną do obsługi debugowania, aby zadawać szczegółowe pytania związane z kodem i ogólnie z problemami w debugowaniu.
Ponadto Copilot zapewnia bardziej precyzyjną pomoc dla niektórych określonych scenariuszy, takich jak wyjątki, oraz wszystkich opisanych w scenariuszach z wykorzystaniem AI do debugowania. W większości tych scenariuszy poszukaj przycisku Ask Copilot
. W tych scenariuszach Copilot zna już kontekst pytań.
Aby uzyskać więcej informacji na temat uzupełnień GitHub Copilot w programie Visual Studio, zobacz About GitHub Copilot Completions in Visual Studio.
Warunki wstępne
Aby rozpocząć pracę, potrzebne są następujące elementy:
Program Visual Studio 2022 w wersji 17.8 lub nowszej
Zaloguj się do Visual Studio, używając konta GitHub z dostępem do Copilot
** Możesz użyć GitHub Copilot bezpłatnie. Zarejestruj się i wykorzystaj sztuczną inteligencję, aby szybciej i wydajniej kodować.Notatka
Jeśli po zainstalowaniu rozszerzenia wystąpią problemy z uwierzytelnianiem, zobacz Rozwiązywanie problemów z uwierzytelnianiem w usłudze GitHub Copilot Chat.
Scenariusze rozszerzone o sztuczną inteligencję
Copilot rozumie stosy wywołań, ramki, nazwy zmiennych i wartości. W rezultacie możesz wchodzić w interakcje ze sztuczną inteligencją zaprogramowaną do obsługi debugowania, aby zadawać szczegółowe pytania związane z kodem i ogólnie z problemami w debugowaniu.
Ponadto copilot zapewnia bardziej precyzyjną pomoc dotyczącą niektórych scenariuszy docelowych, takich jak opisane w poniższej tabeli.
| Funkcja lub scenariusz | Łącze |
|---|---|
| Wyjątki | Zobacz , jak debugować wyjątek z Copilot w tym artykule. Pomoc dotycząca wyjątków obejmuje pomoc dotyczącą błędów wykrywania zakleszczenia. |
| Zmienne | Zobacz Uzyskiwanie pomocy dotyczącej sztucznej inteligencji. |
| Analiza zapytań LINQ | Umieść kursor na zapytaniach LINQ podczas debugowania w edytorze kodu, aby wyświetlić wartość zwracaną. Wybierz przycisk Analizuj za pomocą narzędzia Copilot, aby uzyskać pomoc dotyczącą sztucznej inteligencji. Zobacz Wyświetlanie wartości zwracanych zapytań LINQ. |
| Porady dotyczące danych | Zobacz Uzyskaj pomoc AI w poradach dotyczących danych. |
| Warunkowe punkty przerwania i punkty kontrolne | Zobacz w tym artykule sugestie dotyczące warunkowych punktów przerwania i punktów śledzenia. |
| Szybkie akcje (żarówka) | Uzyskaj pomoc dotyczącą sztucznej inteligencji ze Szybkimi akcjami . |
| Wizualizator tabelaryczny IEnumerable | Zobacz Uzyskiwanie pomocy dotyczącej sztucznej inteligencji. |
| Wartości zwracane w linii | Zobacz także Wyświetl wartości zwracane wywołań metod. |
| Wartości wstawione | Zobacz Widok wartości w linii. |
| Debugowanie wielowątkowane | Zobacz Uzyskiwanie pomocy dotyczącej sztucznej inteligencji w widoku wątków. |
| Testowanie jednostek | Zobacz Uzyskaj pomoc AI w debugowaniu testów |
| Sprawdzanie wyjątków za pomocą kontekstu repozytorium | Zobacz Uzyskiwanie pomocy AI z kontekstem repo |
| Rozwiązywanie problemów z punktami przerwania | Zobacz Uzyskiwanie pomocy dotyczącej sztucznej inteligencji. |
W większości tych scenariuszy uzyskasz pomoc docelową, korzystając z lub przycisk Screenshot of Ask Copilot button.Analizuj za pomocą narzędzia Copilot. Copilot zna już kontekst pytań. Na przykład zna bieżący stos wywołań, wiersz kodu, o którym pytasz, oraz nazwę wyjątku (jeśli wystąpił), więc nie musisz podawać kontekstu na czacie. Copilot udostępnia również sugestie dotyczące korzystania z warunkowych punktów przerwania i punktów śledzenia.
Debugowanie przy użyciu narzędzia Copilot
W poniższym prostym przykładzie pokazano, jak uzyskać pomoc dotyczącą sztucznej inteligencji przy użyciu wbudowanego widoku czatu.
Notatka
Możesz również uzyskać pomoc przy użyciu oddzielnego okna czatu, wybierając pozycję View > GitHub Copilot Chat. Aby uzyskać więcej informacji, zobacz Co to jest rozszerzenie czatu Copilot w usłudze GitHub dla programu Visual Studio?.
Rozpoczynanie sesji debugowania
W programie Visual Studio utwórz nową aplikację konsolową języka C#.
W oknie uruchamiania wybierz pozycję Utwórz nowy projekt. Wpisz konsola w polu wyszukiwania, wybierz C# jako język, a następnie wybierz Aplikacja konsolowa dla .NET. Wybierz pozycję Dalej. Wpisz nazwę projektu, taką jak ConsoleApp_Copilot i wybierz pozycję Next.
Wybierz zalecaną strukturę docelową lub platformę .NET 8, a następnie wybierz pozycję Utwórz.
Jeśli nie widzisz szablonu projektu Console App dla platformy .NET, przejdź do pozycji Narzędzia >Pobierz narzędzia i funkcje, co spowoduje otwarcie Instalatora programu Visual Studio. Wybierz obciążenie programowanie aplikacji .NET na komputerach stacjonarnych, a następnie wybierz Modyfikuj.
Program Visual Studio tworzy projekt konsoli, który jest wyświetlany w eksploratorze rozwiązań w okienku po prawej stronie.
Zastąp kod w Program.cs następującym kodem:
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"); } }Kliknij prawym przyciskiem myszy następujące oświadczenie i wybierz pozycję Punkt przerwania>Dodaj punkt przerwania.
int value = Int32.Parse(args[0]);Naciśnij F5 lub wybierz pozycję Rozpocznij debugowanie z menu "Debug" .
Aplikacja wstrzymuje się w punkcie przerwania. Okno Autos pokazuje, że zmienna args ma wartość
string[0].
Kliknij prawym przyciskiem myszy kod i wybierz pozycję Zapytaj Copilot, aby otworzyć wewnętrzny widok czatu.
Napiwek
Alternatywnie możesz kliknąć prawym przyciskiem myszy zmienną w oknie Autos lub Locals albo w podpowiedzi danych, a następnie wybrać Ask Copilot. Dzięki temu Copilot ma dostęp do nazwy zmiennej i kontekstu, abyś nie musiał samodzielnie podawać kontekstu na czacie.
Wpisz następujące pytanie w widoku czatu wbudowanego:
Why does the args variable have a value of string[0]?
Po naciśnięciu Enter, Copilot udostępnia odpowiedź w oparciu o swoje zrozumienie kodu. (Możesz uzyskać inną odpowiedź niż pokazana w tym miejscu).
Jeśli Copilot ma sugerowaną poprawkę dla twojego kodu, pokaże ją. Jeśli nie, możesz poprosić Copilot o sugestię dotyczącą kodu.
Napiwek
Na czacie wbudowanym użyj symbolu "#" i wybierz z listy rozwijanej, aby przekazać określone informacje do aplikacji Copilot przy odwoływaniu się do nich w pytaniu. Jeśli na przykład wybierzesz część kodu, a następnie wpisz ciąg #, możesz wybrać ten wybór z listy rozwijanej #. Możesz również użyć symbolu "#", aby odwołać się do funkcji ŚRODOWISKA IDE wyświetlanych na liście rozwijanej, takich jak okno Ustawienia lokalne.
W tym przykładzie przewiń do końca odpowiedzi Copilot i wybierz pytanie uzupełniające na końcu okna czatu: "Jak mogę obsłużyć przypadek, gdy do programu nie są przekazywane żadne argumenty?"
Copilot pokazuje sugerowaną poprawkę kodu.
Jeśli chcesz zastosować poprawkę kodu, wybierz pozycję Akceptuj.
Wybierz Anuluj, aby kontynuować naukę innych funkcji Copilot w następnej sekcji.
Debugowanie wyjątku za pomocą narzędzia Copilot
Poniższy prosty przykład pokazuje, jak uzyskać pomoc dotyczącą sztucznej inteligencji w przypadku napotkania wyjątku i jak szybko zaktualizować kod na podstawie sugerowanych poprawek sztucznej inteligencji.
Rozpoczynanie sesji debugowania
Podczas wstrzymania w debugerze przy użyciu tej samej przykładowej aplikacji naciśnij F11 lub Debug>Krok do środka, aby wykonać bieżącą instrukcję.
Występuje zdarzenie
IndexOutOfRangeExceptioni aplikacja zawiesza się, wyświetlając wyjątek.Aby uzyskać pomoc AI w przypadku wyjątku, kontynuuj do następnej sekcji.
Poproś o pomoc dotyczącą sztucznej inteligencji
Gdy aplikacja jest wstrzymana na wyjątku, wybierz przycisk Zapytaj Copilot.
Jeśli nie jest jeszcze otwarty, zostanie wyświetlone okno czatu copilot i wyświetli ocenę błędu i przyczynę jego wystąpienia. W tym przykładzie Copilot identyfikuje sugerowaną poprawkę kodu, przycisk do kopiowania kodu i przycisk Podgląd poprawki kodu.
Jeśli masz pytania dotyczące wyjątku, zadaj je w polu tekstowym Zapytaj Copilot.
Wybierz przycisk Preview.
Program Visual Studio wyświetla podgląd kodu z sugerowaną poprawką.
Przejrzyj sugerowaną poprawkę i wybierz opcję Akceptuj, aby zastosować sugestię kodu.
Uruchom ponownie debuger.
Tym razem nie ma wyjątku. To zostało naprawione!
Uzyskiwanie sugestii przy użyciu warunkowych punktów przerwania i punktów śledzenia
Copilot udostępnia propozycje dotyczące warunkowych punktów przerwania i punktów śledzenia dostosowanych do twojego kodu.
W tym przykładzie przedstawiono sugestie dotyczące sztucznej inteligencji dla warunkowego punktu przerwania. W przypadku punktów śledzenia, pomoc sztucznej inteligencji działa w identyczny sposób.
Usuń bieżący punkt przerwania, klikając go lub klikając prawym przyciskiem myszy, a następnie wybierz pozycję Usuń punkt przerwania.
Zastąp następujący wiersz kodu:
names.Add("Major Major Major");w następujący sposób:
// names.Add("Major Major Major"); foreach (var item in args) { names.Add("Name: " + item); }Po lewej stronie instrukcji
names.Add("Name: " + item)kliknij prawym przyciskiem myszy w margines i wybierz Wstaw warunkowy punkt przerwania.Wybierz pole wyrażenia, a copilot rozpoczyna pracę nad sugestiami.
Po wyświetleniu sugestii wybierz jedną z nich, taką jak
item == "John". Edytuj sugestię, aby nazwa byłaFred.
Aby przetestować wyrażenie warunkowe:
Kliknij prawym przyciskiem myszy projekt ConsoleApp_Copilot w Eksploratorze rozwiązań i wybierz pozycję Właściwości .
Wybierz pozycję Debug>Ogólne>Otwórz interfejs użytkownika profili uruchamiania debugowania.
W polu „argumenty wiersza polecenia” wprowadź
5 Fred Joe, w trzech oddzielnych wierszach.
Uruchom ponownie debuger.
Gdy debuger zatrzymuje się w punkcie przerwania, sprawdź wartość
itemi upewnij się, czy obecna wartość toFred.