Udostępnij za pośrednictwem


Debugowanie aplikacji za pomocą narzędzia GitHub Copilot w programie Visual Studio

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 CopilotZrzut ekranu przedstawiający przycisk Zapytaj Copilot. przycisk. 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:

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

  1. 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 klasycznych platformy .NET, a następnie wybierz pozycję Modyfikuj.

    Program Visual Studio tworzy projekt konsoli, który jest wyświetlany w eksploratorze rozwiązań w okienku po prawej stronie.

  2. 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");
        }
    }
    
  3. Kliknij prawym przyciskiem myszy następujące oświadczenie i wybierz pozycję Punkt przerwania>Dodaj punkt przerwania.

    int value = Int32.Parse(args[0]);
    
  4. 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].

    Zrzut ekranu przedstawiający okno Autos.

  5. 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.

  6. Wpisz następujące pytanie w widoku czatu wbudowanego:

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

    zrzut ekranu wbudowanego czatu Copilot.

    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).

    Zrzut ekranu, na którym Copilot odpowiedział na pytanie.

    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.

  7. 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?"

    zrzut ekranu przedstawiający kolejne pytanie Copilot.

    Copilot pokazuje sugerowaną poprawkę kodu.

    Zrzut ekranu przedstawiający sugerowaną przez Copilot poprawkę.

    Jeśli chcesz zastosować poprawkę kodu, wybierz pozycję Akceptuj.

  8. 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 Debugowanie>Krok do, aby wykonać bieżącą instrukcję.

    Występuje zdarzenie IndexOutOfRangeException i 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

  1. Po wstrzymaniu aplikacji w wyjątku wybierz przycisk Zapytaj Copilot.

    Zrzut ekranu przycisku

    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 Preview poprawki kodu.

    Jeśli masz pytania dotyczące wyjątku, zadaj je w polu tekstowym Zapytaj Copilot.

  2. Wybierz przycisk Preview.

    zrzut ekranu przedstawiający przycisk Podgląd w oknie czatu Copilot.

    Program Visual Studio wyświetla podgląd kodu z sugerowaną poprawką.

  3. Przejrzyj sugerowaną poprawkę i wybierz opcję Akceptuj, aby zastosować sugestię kodu.

    Zrzut ekranu przedstawiający podgląd kodu w programie Visual Studio.

  4. 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.

  1. Usuń bieżący punkt przerwania, klikając go lub klikając prawym przyciskiem myszy, a następnie wybierz pozycję Usuń punkt przerwania.

  2. 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);
    }
    
  3. Po lewej stronie instrukcji names.Add("Name: " + item) kliknij prawym przyciskiem myszy w margines i wybierz Wstaw warunkowy punkt przerwania.

  4. Wybierz pole wyrażenia, a copilot rozpoczyna pracę nad sugestiami.

    Zrzut ekranu przedstawiający sugestie dotyczące warunkowego punktu przerwania generowane przez narzędzie Copilot.

  5. Po wyświetleniu sugestii wybierz jedną z nich, taką jak item == "John". Edytuj sugestię, aby nazwa była Fred.

    Zrzut ekranu przedstawiający sugestię Copilot dotyczącą warunkowego punktu przerwania.

  6. Aby przetestować wyrażenie warunkowe:

    1. Kliknij prawym przyciskiem myszy projekt ConsoleApp_Copilot w Eksploratorze rozwiązań i wybierz pozycję Właściwości .

    2. Wybierz pozycję Debug>Ogólne>Otwórz interfejs użytkownika profili uruchamiania debugowania.

    3. W polu „argumenty wiersza polecenia” wprowadź 5 Fred Joe, w trzech oddzielnych wierszach.

      Zrzut ekranu przedstawiający wprowadzanie argumentów wiersza polecenia dla projektu.

    4. Uruchom ponownie debuger.

    Gdy debuger zatrzymuje się w punkcie przerwania, sprawdź wartość item i upewnij się, czy obecna wartość to Fred.

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 Debugowanie przy użyciu Copilot w tym artykule.
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 Modyfikowanie wyrażenia wizualizatora.
Wartości zwracane w linii Zobacz Wyświetl wartości zwracane wywołań metod.
Opisy wątków podsumowujących Zobacz widok wątków (stosy równoległe) .
Automatyczne szczegółowe informacje na temat profilowania Zobacz Uzyskaj pomoc AI wAuto insights.

W większości tych scenariuszy uzyskasz pomoc docelową, korzystając z przycisku Ask CopilotZrzut ekranu przedstawiający przycisk Zapytaj Copilot. przycisk. 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 samodzielnie podczas czatu. Copilot udostępnia również sugestie dotyczące korzystania z warunkowych punktów przerwania i punktów śledzenia.