Compartir a través de


Depurar la aplicación con GitHub Copilot en Visual Studio

En este artículo, aprenderás a depurar de manera más eficaz utilizando GitHub Copilot. Copilot puede proporcionar correcciones de código junto con análisis detallados y explicaciones de cómo funciona el código. Ayuda con correcciones propuestas a errores y explica cosas como excepciones. Copilot comprende las pilas de llamadas, los marcos, los nombres de las variables y los valores. Como resultado, puede interactuar con la inteligencia artificial compatible con el depurador para formular preguntas detalladas relacionadas con el código y para depurar problemas en general.

Además, Copilot proporciona ayuda más precisa para algunos escenarios específicos, como Excepciones, y todos los descritos en Escenarios mejorados con IA para la depuración. En la mayoría de estos escenarios, busque el botón Preguntar a CopilotCaptura de pantalla del botón Preguntar a Copilot.. En estos escenarios, Copilot ya conoce el contexto de sus preguntas.

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

Requisitos previos

Para empezar, necesita lo siguiente:

Depuración mediante Copilot

En el ejemplo sencillo siguiente se muestra cómo obtener ayuda de IA mediante la vista chat en línea.

Nota

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

Inicio de una sesión de depuración

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

    En la ventana de inicio, elija Crear un proyecto nuevo. Escriba consola en el cuadro de búsqueda, seleccione C# como el idioma y, a continuación, elija Aplicación consola para .NET. Seleccione Siguiente. Escriba un nombre de proyecto como 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 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 instrucción siguiente y elija 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 Autos muestra que la variable args tiene un valor de string[0].

    captura de pantalla de la ventana Autos.

  5. Haga clic con el botón derecho en el código y elija Pregunte a Copilot para abrir la vista 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 en una sugerencia de datos, y elegir Preguntar a Copilot. Esto proporciona a Copilot el nombre y el contexto de la variable, por lo que no es necesario proporcionar contexto en el chat.

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

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

    Recorte de pantalla del chat en línea de Copilot.

    Al presionar Entrar, Copilot proporciona una respuesta basada en su comprensión del código. (Puede obtener una respuesta diferente a la que se muestra aquí).

    Captura de pantalla de la respuesta de Copilot a la pregunta.

    Si Copilot tiene una corrección sugerida para el código, se lo muestra. Si no es así, puede pedir a Copilot una sugerencia de código.

    Sugerencia

    En el chat en línea, usa el símbolo "#" y selecciona de la lista desplegable para transmitir información específica a Copilot mientras la mencionas en tu pregunta. Por ejemplo, si selecciona una parte del código y, a continuación, escribe #, puede elegir esa selección en la lista desplegable #. También puede usar el símbolo "#" para hacer referencia a las características del IDE que aparecen en la lista desplegable, como la ventana Variables 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 chat en línea, "¿Cómo puedo controlar el caso cuando no se pasan argumentos al programa?"

    Recorte de pantalla de la pregunta de seguimiento de Copilot.

    Copilot muestra una corrección sugerida para tu código.

    Recorte de pantalla de la corrección sugerida de Copilot.

    Si desea aplicar la corrección de código, elija Aceptar.

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

Depurar una excepción con Copilot

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 se pausa en el depurador con la misma aplicación de ejemplo, presione F11 o Depurar>Paso a paso para ejecutar la instrucción 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 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 de Vista previa.

    Recorte de pantalla del botón Vista previa en la ventana 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.

    Recorte de pantalla de la vista previa del código en Visual Studio.

  4. Reinicie el depurador.

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

Obtención de sugerencias con puntos de interrupción condicionales y puntos de seguimiento

Copilot proporciona sugerencias para puntos de interrupción condicionales y puntos de seguimiento específicos para el 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, haga clic en él o haga clic con el botón derecho y elija 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), haga clic con el botón derecho en el margen y elija Insertar punto de interrupción condicional.

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

    Captura de pantalla de Copilot trabajando en sugerencias de punto de interrupción condicional.

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

    Recorte de pantalla de la sugerencia de Copilot para el punto de interrupción condicional.

  6. Para probar la expresión condicional:

    1. Haga clic con el botón derecho en el proyecto ConsoleApp_Copilot dentro del Explorador de Soluciones y elija Propiedades.

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

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

      Captura de pantalla de la introducción de argumentos de línea de comandos para el proyecto.

    4. Reinicie el depurador.

    Cuando el depurador se pausa en el punto de interrupción, compruebe el valor de item y asegúrese de que el valor actual sea Fred.

Escenarios mejorados con IA

Copilot comprende las pilas de llamadas, los marcos, los nombres de las variables y los valores. Como resultado, puede interactuar con la inteligencia artificial compatible con el depurador para formular preguntas detalladas relacionadas con el código y para depurar problemas en general.

Además, Copilot proporciona ayuda más precisa para algunos escenarios específicos, como los descritos en la tabla siguiente.

Característica o escenario Link
Excepciones Consulte Depurar una excepción con Copilot en este artículo. La ayuda con excepciones incluye ayuda con errores de detección de interbloqueo.
variables Consulte Depuración con Copilot en este artículo.
Puntos de interrupción condicionales y puntos de seguimiento Consulte Obtener sugerencias con puntos de interrupción condicionales y puntos de seguimiento en este artículo.
Acciones rápidas (bombilla) Consulte Asistencia de IA con Acciones Rápidas.
Visualizador tabular IEnumerable Consulte Modificar la expresión del visualizador.
Valores devueltos insertados Consulte Ver valores devueltos de llamadas de método.
Descripciones de hilos de resumen Consulte Vista de Subprocesos (pilas paralelas).
Información automática para la generación de perfiles Consulte Obtener ayuda de IA con información automatizada.

En la mayoría de estos escenarios, obtendrá ayuda dirigida mediante el Ask CopilotCaptura de pantalla del botón Ask Copilot (Preguntar a Copilot). botón. Copilot ya conoce el contexto de sus preguntas. Por ejemplo, conoce la pila de llamadas actual, la línea de código que está preguntando y el nombre de la excepción (si se ha producido), 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.