Depurar la aplicación con GitHub Copilot en Visual Studio

En este artículo, aprenderá a depurar de forma más eficiente utilizando GitHub Copilot. Copilot puede proporcionar correcciones de código junto con análisis en profundidad y explicaciones de cómo funciona el código. Ayuda a proponer correcciones de errores y explica cosas como las excepciones. Copilot comprende las pilas de llamadas, los marcos, los nombres de las variables y los valores. Como resultado, puede interactuar con la IA consciente de la depuración para hacer preguntas detalladas relacionadas con su código y con los problemas de depuración en general.

Además, Copilot proporciona ayuda más precisa para algunos escenarios específicos, entre los que se incluyen los siguientes:

  • Excepciones
  • Variables
  • Paradas
  • Información automática sobre el uso de CPU

Para obtener asistencia de la IA mientras depura en estos escenarios, busque el botón Preguntar a Copilot Captura de pantalla del botón Preguntar Copilot.. En estos escenarios, Copilot ya conoce el contexto de sus preguntas. Por ejemplo, conoce la pila de llamadas actual, la línea de código sobre la que está preguntando y el nombre de la excepción (si se ha producido una), por lo que no es necesario proporcionar contexto en el chat. Copilot también proporciona sugerencias para el uso de puntos de interrupción condicionales y puntos de seguimiento.

Para obtener más información sobre las finalizaciones de GitHub Copilot en Visual Studio, consulta Acerca de las finalizaciones de GitHub Copilot en Visual Studio.

Requisitos previos

Para empezar, necesitará lo siguiente:

Obtenga ayuda de la IA para depurar su aplicación

El siguiente ejemplo sencillo muestra cómo obtener asistencia de la IA utilizando la vista de chat en línea.

Nota:

También puede obtener ayuda utilizando la ventana de chat independiente seleccionando Ver > chat de GitHub Copilot. Para obtener más información, consulte ¿Qué es la extensión GitHub Copilot Chat para Visual Studio?

Inicio de una sesión de depuración

  1. En Visual Studio, cree una nueva aplicación de consola C#.

    En la ventana de inicio, elija Crear un proyecto nuevo. Escriba consola en el cuadro de búsqueda, seleccione C# como lenguaje y luego elija Aplicación de consola para .NET. Elija Siguiente. Escriba un nombre de proyecto como, por ejemplo, ConsoleApp_Copilot y seleccione Siguiente.

    Seleccione la plataforma de destino recomendada o .NET 8 y, después, elija Crear.

    Si no ve la plantilla de proyecto Aplicación de consola para .NET, vaya a Herramientas>Obtener herramientas y características y se abrirá el Instalador de Visual Studio. Elija la carga de trabajo Desarrollo de escritorio de .NET y, luego, seleccione Modificar.

    Visual Studio crea el proyecto de consola, que aparece en el panel derecho del Explorador de soluciones.

  2. Reemplace el código de Program.cs por el código siguiente:

    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. Haga clic con el botón derecho en la siguiente frase y seleccione Punto de interrupción>Insertar punto de interrupción.

    int value = Int32.Parse(args[0]);
    
  4. Presione F5 o seleccione Iniciar depuración en el menú Depurar.

    La aplicación se detiene en el punto de interrupción. La ventana Automático muestra que la variable args tiene un valor de string[0].

    Captura de pantalla de la ventana Motor.

  5. Haga clic con el botón derecho en el código y elija Preguntar a Copilot para abrir la vista de Chat en línea.

    Sugerencia

    Como alternativa, puede hacer clic con el botón derecho en una variable en la ventana Automático o Variables locales, o bien en una sugerencia de datos, y seleccionar Preguntar a Copilot. Esto proporciona a Copilot el nombre y el contexto de la variable, por lo que no es necesario que proporcione contexto en el chat.

  6. Escriba la siguiente pregunta en la vista de Chat en línea:

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

    Captura de pantalla del chat insertado de Copilot.

    Al pulsar Entrar, Copilot proporciona una respuesta basada en su comprensión del código. (Es posible que obtenga una respuesta diferente a la que se muestra aquí).

    Captura de pantalla de la pregunta respondida por Copilot.

    Si Copilot tiene una solución sugerida para su código, se la mostrará. Si no es así, puede pedir a Copilot una sugerencia de código.

    Sugerencia

    En el chat insertado, usa el símbolo «#» y selecciona lo que desees en la lista desplegable para entregar información específica a Copilot e incluir la selección en tu pregunta. Por ejemplo, si seleccionas una parte del código y, a continuación, escribes #, puedes elegir esa selección en la lista desplegable #. También puedes usar el símbolo «#» para hacer referencia a las características del IDE que aparecen en la lista desplegable, como la ventana Locales.

  7. En este ejemplo, desplácese hasta el final de la respuesta de Copilot y seleccione la pregunta de seguimiento al final de la ventana de Chat en línea, "¿Cómo puedo gestionar el caso cuando no se pasan argumentos al programa?".

    Captura de pantalla de la pregunta de seguimiento de Copilot.

    Copilot muestra una sugerencia de corrección de su código.

    Captura de pantalla de la corrección sugerida por Copilot.

    Si desea aplicar la corrección del código, seleccione Aceptar.

  8. Elija Cancelar para que podamos continuar aprendiendo otras características de Copilot en la siguiente sección.

Obtener ayuda de inteligencia artificial para una excepción

En este ejemplo sencillo, se muestra cómo obtener ayuda de inteligencia artificial cuando se produce una excepción y cómo actualizar rápidamente el código en función de las correcciones sugeridas por la inteligencia artificial.

Inicio de una sesión de depuración

  • Mientras está en pausa en el depurador utilizando la misma aplicación de ejemplo, pulse F11 o Depurar>Paso a paso para ejecutar la sentencia actual.

    Se produce una excepción IndexOutOfRangeException y la aplicación se pausa. En ese momento, se muestra más información.

    Para obtener ayuda de inteligencia artificial para la excepción, continúe con la sección siguiente.

Solicitar ayuda de inteligencia artificial

  1. Con la aplicación en pausa en la excepción, seleccione el botón Preguntar a Copilot.

    Captura de pantalla del botón Preguntar a Copilot en una excepción.

    Si aún no está abierto, aparece la ventana Chat de Copilot y proporciona una evaluación del error y por qué se produjo. En este ejemplo, Copilot identifica una corrección de código sugerida, un botón para copiar código y un botón Vista previa para la corrección de código.

    Si tiene alguna pregunta sobre la excepción, escriba la consulta en el cuadro de texto Preguntar a Copilot.

  2. Seleccione el botón Vista previa.

    Captura de pantalla del botón Vista previa en la ventana de chat de Copilot.

    Visual Studio muestra una vista previa del código con la corrección sugerida.

  3. Revise la corrección sugerida y elija Aceptar para aplicar la sugerencia de código.

    Captura de pantalla de la vista previa de código en Visual Studio

  4. Reinicie el depurador.

    Esta vez, no se produce ninguna excepción. ¡Problema resuelto!

Obtención de asistencia de IA para puntos de interrupción condicionales y puntos de seguimiento

Copilot proporciona sugerencias para puntos de interrupción condicionales y puntos de seguimiento específicos del código.

En este ejemplo, se muestran sugerencias de IA para un punto de interrupción condicional. En el caso de los puntos de seguimiento, la asistencia de IA funciona de la misma manera.

  1. Para quitar el punto de interrupción actual, haz clic en él o haz clic con el botón derecho y elige Eliminar punto de interrupción.

  2. Agregue la línea de código siguiente:

    names.Add("Major Major Major");
    

    por este:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. A la izquierda de la instrucción names.Add("Name: " + item), haz clic con el botón derecho en el margen y elige Insertar punto de interrupción condicional.

  4. Selecciona el campo de expresión y Copilot empezará a trabajar en sugerencias.

    Captura de pantalla de Copilot trabajando en sugerencias para puntos de interrupción condicionales.

  5. Cuando aparezcan las sugerencias, elige una como item == "John". Edita la sugerencia para que el nombre sea Fred.

    Captura de pantalla de sugerencia de Copilot para un punto de interrupción condicional.

  6. Para probar la expresión condicional:

    1. Haz clic derecho en el proyecto ConsoleApp_Copilot en el Explorador de soluciones y elige Propiedades.

    2. Selecciona Depurar>General>Abrir interfaz de usuario de perfiles de inicio de depuración.

    3. En el campo Argumentos de línea de comandos, escribe 5 Fred Joe, en tres líneas independientes.

      Captura de pantalla de cómo escribir argumentos de línea de comandos para el proyecto.

    4. Reinicie el depurador.

    Cuando el depurador se pausa en el punto de interrupción, comprueba el valor de item y verifica que el valor actual es Fred.

Obtención de ayuda de IA en el visualizador tabular IEnumerable

Para obtener ayuda de IA para el visualizador tabular IEnumerable, consulte Modificación de la expresión del visualizador.

Obtener ayuda de inteligencia artificial para obtener información automática

Además de la asistencia de depuración interactiva, Copilot proporciona información detallada en la Información automática de Uso de CPU. Proporciona información y perspectivas relacionadas con un conjunto de perspectivas de rendimiento específicas. Con Copilot, haga preguntas sobre las funciones en las rutas de acceso activas identificadas en el código, lo que puede ayudarle a generar código de forma más eficaz o rentable.

El botón Preguntar a Copilot aparece incluso si no se identifica ninguna información de rendimiento específica. Seleccione Preguntar a Copilot para obtener información de Copilot y empezar a formular preguntas.

Animación de uso de Copilot con uso de CPU.