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 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:
Visual Studio 2022 versión 17.8 o posterior
Inicio de sesión en Visual Studio mediante una cuenta de GitHub con acceso a Copilot
** Puede usar GitHub Copilot gratis. Regístrese y aproveche la inteligencia artificial para codificar de forma más rápida y eficaz.GitHub Copilot en Visual Studio
GitHub Copilot Chat en Visual Studio
Nota
Si experimenta problemas de autenticación después de instalar la extensión, consulte Solución de problemas de autenticación con GitHub Copilot Chat.
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
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.
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"); } }
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]);
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]
.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.
Escriba la siguiente pregunta en la vista chat en línea:
Why does the args variable have a value of string[0]?
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í).
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.
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?"
Copilot muestra una corrección sugerida para tu código.
Si desea aplicar la corrección de código, elija Aceptar.
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
Con la aplicación en pausa en la excepción, seleccione el botón Preguntar a Copilot.
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.
Seleccione el botón de Vista previa.
Visual Studio muestra una vista previa del código con la corrección sugerida.
Revise la corrección sugerida y elija Aceptar para aplicar la sugerencia de código.
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.
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.
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); }
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.Seleccione el campo de expresión y Copilot empezará a trabajar en las sugerencias.
Cuando aparezcan las sugerencias, elija una como
item == "John"
. Edite la sugerencia para que el nombre seaFred
.Para probar la expresión condicional:
Haga clic con el botón derecho en el proyecto ConsoleApp_Copilot dentro del Explorador de Soluciones y elija Propiedades.
Seleccione Depurar>General>Abrir la interfaz de usuario de perfiles de inicio de depuración.
En el campo Argumentos de línea de comandos, escriba
5 Fred Joe
, en tres líneas independientes.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 seaFred
.
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 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.