Поделиться через


Отладка приложения с помощью GitHub Copilot в Visual Studio

В этой статье вы узнаете, как эффективнее выполнять отладку с помощью GitHub Copilot. Copilot может предоставлять исправления кода вместе с подробным анализом и объяснением работы кода. Это помогает с предлагаемыми исправлениями ошибок и объясняет такие вещи, как исключения. Copilot понимает стеки вызовов, кадры, имена переменных и значения. В результате вы можете взаимодействовать с отладчиком ИИ, чтобы задать подробные вопросы, связанные с кодом и отладкой проблем в целом.

Кроме того, Copilot предоставляет более точную помощь для нескольких целевых сценариев, включая следующие:

  • Исключения
  • Переменные
  • Взаимоблокировки
  • Автоматическая аналитика для использования ЦП

Чтобы получить помощь по искусственному интеллекту во время отладки в этих сценариях, найдите кнопку Ask CopilotСнимок экрана: кнопка Ask Copilot.. В этих сценариях Copilot уже знает контекст ваших вопросов. Например, он знает стек текущих вызовов, кодовую строку, которую вы запрашиваете, и имя исключения (если произошло), поэтому вам не нужно предоставлять контекст в чате. Copilot также предоставляет предложения по использованию условных точек останова и точек трассировки.

Дополнительные сведения о завершении GitHub Copilot в Visual Studio см. в разделе "Сведения о завершении GitHub Copilot" в Visual Studio.

Необходимые компоненты

Для начала работы необходимы перечисленные ниже компоненты и данные.

Получение помощи по отладке приложения с помощью ИИ

В следующем простом примере показано, как получить помощь СИ с помощью встроенного представления чата.

Примечание.

Вы также можете получить помощь в отдельном окне чата, выбрав "Просмотреть > GitHub Copilot Chat". Дополнительные сведения см. в разделе "Что такое расширение чата GitHub Copilot для Visual Studio?".

Запуск сеанса отладки

  1. В Visual Studio создайте консольное приложение C#.

    На начальном экране выберите Создать проект. Введите консоль в поле поиска, выберите язык C# и выберите консольное приложение для .NET. Нажмите кнопку Далее. Введите имя проекта, например ConsoleApp_Copilot , и нажмите кнопку "Далее".

    Выберите рекомендуемую целевую платформу или .NET 8, а затем нажмите кнопку "Создать".

    Если вы не видите шаблон проекта консольного приложения для .NET, перейдите в раздел "Сервис>получения инструментов и функций", который открывает установщик Visual Studio. Выберите рабочую нагрузку Разработка классических приложений .NET и нажмите Изменить.

    Visual Studio создаст консольный проект и откроет его в Обозревателе решений в области справа.

  2. Замените код файла Program.cs на код, приведенный ниже:

    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. Щелкните правой кнопкой мыши следующую инструкцию и выберите точку>останова вставить точку останова.

    int value = Int32.Parse(args[0]);
    
  4. Нажмите клавишу F5 или выберите "Начать отладку" в меню отладки.

    Приложение приостанавливается в точке останова. В окне "Автозапуск" показано, что переменная args имеет значение string[0].

    Снимок экрана: окно

  5. Щелкните код правой кнопкой мыши и выберите "Попросить Copilot ", чтобы открыть встроенное представление чата.

    Совет

    Кроме того, можно щелкнуть правой кнопкой мыши переменную в окне "Авто" или "Локальные" или в совете по данным и выбрать "Ask Copilot". Это обеспечивает Copilot с именем и контекстом переменной, поэтому вам не нужно предоставлять контекст в чате.

  6. Введите следующий вопрос в режиме встроенного чата:

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

    Снимок экрана: встроенный чат Copilot.

    При нажатии клавиши ВВОД Copilot предоставляет ответ на основе его понимания кода. (Вы можете получить другой ответ, отличный от того, что показано здесь.)

    Снимок экрана: ответ на вопрос Copilot.

    Если в Copilot есть предлагаемое исправление для кода, отображается. Если нет, вы можете попросить Copilot предложить код.

    Совет

    В встроенном чате используйте символ "#" и выберите из раскрывающегося списка, чтобы передать определенные сведения в Copilot во время ссылки на него в вашем вопросе. Например, если выбрать часть кода, а затем ввести #, можно выбрать этот выбор из # раскрывающегося списка. Вы также можете использовать символ "#" для ссылки на функции интегрированной среды разработки, которые отображаются в раскрывающемся списке, например в окне "Локальные".

  7. В этом примере прокрутите страницу до конца ответа Copilot и выберите следующий вопрос в конце встроенного окна чата: "Как можно справиться с ситуацией, когда аргументы не передаются в программу?"

    Снимок экрана: дальнейший вопрос Copilot.

    Copilot показывает предлагаемое исправление в коде.

    Снимок экрана: предлагаемое исправление Copilot.

    Если вы хотите применить исправление кода, нажмите кнопку "Принять".

  8. Нажмите кнопку "Отмена" , чтобы продолжить изучение других функций Copilot в следующем разделе.

Получение помощи по искусственному интеллекту для исключения

В следующем простом примере показано, как получить помощь по искусственному интеллекту при возникновении исключения и как быстро обновить код на основе исправлений, предлагаемых ИИ.

Запуск сеанса отладки

  • При приостановке работы отладчика с помощью того же примера приложения нажмите клавишу F11 или Debug>Step In, чтобы выполнить текущую инструкцию.

    Происходит IndexOutOfRangeException и приложение приостанавливается, показывая исключение.

    Чтобы получить помощь по ИИ для исключения, перейдите к следующему разделу.

Запрос помощи по искусственному интеллекту

  1. При приостановке приложения в исключении нажмите кнопку Ask Copilot .

    Снимок экрана: кнопка Ask Copilot в исключении.

    Если он еще не открыт, откроется окно чата Copilot и предоставляет оценку ошибки и причин ее возникновения. В этом примере Copilot определяет предлагаемое исправление кода, кнопку для копирования кода и кнопку предварительного просмотра для исправления кода.

    Если у вас есть вопросы об исключении, задайте их в текстовом поле Ask Copilot.

  2. Нажмите кнопку "Предварительный просмотр ".

    Снимок экрана: кнопка предварительного просмотра в окне чата Copilot.

    Visual Studio отображает предварительный просмотр кода с предлагаемым исправлением.

  3. Просмотрите предлагаемое исправление и нажмите кнопку "Принять ", чтобы применить предложение кода.

    Снимок экрана: предварительный просмотр кода в Visual Studio.

  4. Перезапустите отладчик.

    На этот раз исключение не возникает. Исправлено!

Получение помощи по искусственному интеллекту с условными точками останова и точками трассировки

Copilot предоставляет предложения для условных точек останова и точек трассировки, относящихся к коду.

В этом примере мы показываем предложения искусственного интеллекта для условной точки останова. Для точек трассировки помощь искусственного интеллекта работает так же.

  1. Удалите текущую точку останова, щелкнув ее или щелкните правой кнопкой мыши и выберите пункт "Удалить точку останова".

  2. Замените следующую строку кода:

    names.Add("Major Major Major");
    

    следующим кодом:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. Слева от инструкции names.Add("Name: " + item) щелкните правой кнопкой мыши в гамме и выберите пункт "Вставить условную точку останова".

  4. Выберите поле выражения, и Copilot начинает работать над предложениями.

    Снимок экрана: Copilot, работающий над предложениями по условной точке останова.

  5. При появлении предложений выберите такой item == "John"вариант. Измените предложение таким образом, чтобы имя было Fred.

    Снимок экрана: предложение Copilot для условной точки останова.

  6. Чтобы проверить условное выражение, выполните следующие действия.

    1. Щелкните правой кнопкой мыши проект ConsoleApp_Copilot в Обозреватель решений и выберите "Свойства".

    2. Выберите пользовательский интерфейс профилей запуска отладки "Общие>открытые отладки".>

    3. В поле аргументов командной строки введите 5 Fred Joeтри отдельные строки.

      Снимок экрана: ввод аргументов командной строки для проекта.

    4. Перезапустите отладчик.

    Когда отладчик приостанавливается в точке останова, проверьте значение item и убедитесь, что текущее значение равно Fred.

Получение помощи по искусственному интеллекту в табличном визуализаторе IEnumerable

Сведения о помощи ИИ для табличного визуализатора IEnumerable см. в разделе "Изменение выражения визуализатора".

Получение помощи по искусственному интеллекту для автоматической аналитики

Помимо интерактивной помощи по отладке, Copilot предоставляет подробные сведения в автообнастройке ЦП. Он предоставляет сведения и аналитические сведения, связанные с набором конкретных аналитических сведений о производительности. С помощью Copilot задайте вопросы о функциях на определенных горячих путях в коде, которые помогут вам создать более эффективный или экономичный код.

Кнопка Ask Copilot отображается даже в том случае, если не определены конкретные аналитические сведения о производительности. Выберите "Задать Copilot", чтобы узнать из Copilot и начать задавать вопросы.

Анимация использования Copilot с использованием ЦП.