Ejercicio: Ejecución de código en el entorno de depuración

Completado

La interfaz de usuario de Visual Studio Code permite a los desarrolladores ejecutar su código en un entorno de depuración. El soporte para la depuración se proporciona mediante extensiones, y para los desarrolladores de C#, el soporte del depurador lo brinda la misma extensión que proporciona soporte para el desarrollo de código e IntelliSense.

Interacción del depurador y la aplicación

Se puede usar un depurador de código para pausar y reanudar la ejecución del código, examinar el estado de la variable e incluso cambiar los valores asignados a variables en tiempo de ejecución. Es posible que se pregunte, ¿cómo puede el depurador controlar y modificar una aplicación en ejecución? La respuesta corta es que el depurador tiene acceso al entorno en tiempo de ejecución de la aplicación y al código ejecutable.

Nota:

La interacción del depurador con el entorno en tiempo de ejecución es un tema avanzado. Además, comprender cómo funciona el depurador en segundo plano no es un requisito para usar el depurador. Sin embargo, la siguiente descripción puede satisfacer su curiosidad.

El depurador de Visual Studio Code para C# usa el entorno de ejecución de .NET Core para iniciar e interactuar con una aplicación. Al iniciar el depurador, crea una nueva instancia del entorno de ejecución y ejecuta la aplicación dentro de esa instancia. El tiempo de ejecución incluye una interfaz de programación de aplicaciones (API), que el depurador usa para acoplarse al proceso en ejecución (su aplicación).

Una vez que la aplicación se está ejecutando y el depurador está asociado, el depurador se comunica con el proceso en ejecución mediante las API de depuración del entorno de ejecución de .NET Core y un protocolo de depuración estándar. El depurador puede interactuar con el proceso (la aplicación que se ejecuta dentro de la instancia de tiempo de ejecución de .NET) estableciendo puntos de interrupción, paso a paso por el código e inspeccionando variables. La interfaz del depurador de Visual Studio Code permite navegar por el código fuente, ver pilas de llamadas y evaluar expresiones.

La forma más común de especificar una sesión de depuración es una configuración de inicio en el archivo launch.json. Este enfoque es la opción predeterminada habilitada por las herramientas del depurador. Por ejemplo, si crea una aplicación de consola de C# y selecciona Iniciar depuración en el menú Ejecutar , el depurador usa este enfoque para iniciar, asociar y, a continuación, interactuar con la aplicación.

Creación de un nuevo proyecto de código

El primer paso para aprender las herramientas del depurador es crear un proyecto de código que se puede ejecutar en el depurador.

  1. Abra una nueva instancia de Visual Studio Code.

  2. En el menú Archivo , seleccione Abrir carpeta.

  3. En el cuadro de diálogo Abrir carpeta , vaya a la carpeta escritorio de Windows.

  4. En el cuadro de diálogo Abrir carpeta , seleccione Nueva carpeta.

  5. Asigne un nombre a la nueva carpeta Depurar101 y, a continuación, seleccione Seleccionar carpeta.

  6. En el menú Terminal, seleccione Nuevo terminal.

    Se puede usar un comando de la CLI de .NET para crear una aplicación de consola.

  7. En el símbolo del sistema del panel TERMINAL, escriba el siguiente comando:

    dotnet new console
    
  8. Cierre el panel TERMINAL.

Examen de las configuraciones de inicio para la depuración

Visual Studio Code usa un archivo de configuración de inicio para especificar la aplicación que se ejecuta en el entorno de depuración.

  1. Si la carpeta Depurar101 no incluye un archivo Debug101.sln, seleccione Program.cs y compruebe que se crea un archivo .sln.

    Al abrir un archivo de código de C# se solicita al entorno que compruebe si hay archivos de proyecto. El archivo .sln es un archivo de solución que usa Visual Studio para administrar proyectos y normalmente se crea automáticamente al crear un nuevo proyecto en Visual Studio Code. El depurador usa el archivo .sln para identificar el proyecto que se debe ejecutar en el entorno de depuración.

  2. En el menú Vista, seleccione Paleta de comandos.

  3. En el símbolo del sistema, escriba .net: g y, después, seleccione .NET: Generar recursos para compilar y depurar.

  4. Observe la nueva .vscode carpeta que se ha agregado a la carpeta del proyecto.

    Captura de pantalla que muestra la carpeta .vscode en el EXPLORADOR.

    La .vscode carpeta contiene archivos que se usan para configurar el entorno de depuración.

  5. Expanda la .vscode carpeta y, a continuación, seleccione el archivo launch.json .

  6. Dedique un minuto a examinar el archivo launch.json.

    El archivo de configuraciones de inicio puede incluir varias configuraciones. Cada configuración incluye una colección de atributos que se usan para definir esa configuración.

  7. Observe que el atributo prelaunchTask especifica una tarea de compilación .

  8. En la .vscode carpeta, seleccione tasks.json.

  9. Observe que el archivo tasks.json contiene la tarea de compilación del proyecto de código.

  10. Cierre los archivos launch.json y tasks.json .

Eche un vistazo más detalladamente a los atributos de configuración de inicio más adelante en este módulo.

Ejecuta tu código desde el menú Ejecutar

El menú Ejecutar de Visual Studio Code proporciona la opción de ejecutar el código con o sin el depurador.

  1. Abra el archivo Program.cs.

  2. Reemplace el contenido del archivo Program.cs por el código siguiente:

    /* 
    This code uses a names array and corresponding methods to display
    greeting messages
    */
    
    string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" };
    
    string messageText = "";
    
    foreach (string name in names)
    {
        if (name == "Sophia")
            messageText = SophiaMessage();
        else if (name == "Andrew")
            messageText = AndrewMessage();
        else if (name == "AllGreetings")
            messageText = SophiaMessage();
            messageText = messageText + "\n\r" + AndrewMessage();
    
        Console.WriteLine(messageText + "\n\r");
    }
    
    bool pauseCode = true;
    while (pauseCode == true);
    
    static string SophiaMessage()
    {
        return "Hello, my name is Sophia.";
    }
    
    static string AndrewMessage()
    {
        return "Hi, my name is Andrew. Good to meet you.";
    }
    
  3. En el menú Archivo, seleccione Guardar.

  4. Abra el menú Ejecutar .

    Observe que el menú Ejecutar proporciona opciones para ejecutar el código con o sin depuración.

  5. En el menú Ejecutar, seleccione Ejecutar sin depuración.

  6. Observe que el panel Consola de Depuración muestra la salida de la consola y que la barra de herramientas de Depuración muestra controles de ejecución.

    El panel CONSOLA DE DEPURACIÓN debe mostrarse debajo del Editor de código. De forma predeterminada, la barra de herramientas Depurar (la barra de herramientas pequeña que muestra controles de ejecución de código) se encuentra encima del Editor de código y se centra horizontalmente en la ventana de Visual Studio Code.

  7. En la barra de herramientas Depurar, seleccione Detener.

Iniciar una sesión de depuración desde el menú Ejecutar

El menú Ejecutar incluye la opción para iniciar una sesión de depuración.

  1. En el menú Ejecutar, seleccione Iniciar depuración.

  2. Dedique un minuto a revisar los mensajes que se muestran en el panel CONSOLA DE DEPURACIÓN.

    La salida de la aplicación es la misma que cuando se ejecutó sin depurar, pero se muestran otros mensajes relacionados con la preparación del entorno de depuración.

  3. Observe los mensajes sobre la carga de recursos de .NET y la aplicación Debug101.

    Los dos primeros mensajes notifican la carga de la biblioteca .NET Core y, a continuación, la aplicación Debug101.

    Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.4\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
    Loaded 'C:\Users\someuser\Desktop\Debug101\bin\Debug\net7.0\Debug101.dll'. Symbols loaded.
    

    El depurador usa una instancia especial del entorno de ejecución de .NET para controlar la ejecución de la aplicación y evaluar el estado de la aplicación.

  4. En la barra de herramientas Depurar, seleccione Detener.

Ejecuta tu código desde la vista Ejecutar y Depurar

La vista EJECUTAR Y DEPURAR de Visual Studio Code admite una experiencia de depuración enriquecida.

  1. Cambie a la vista EJECUTAR Y DEPURAR.

    Captura de pantalla que muestra la opción ejecutar en la vista Ejecutar y depurar.

  2. En la vista EJECUTAR Y DEPURAR, seleccione Iniciar depuración.

    El botón Iniciar depuración es la flecha verde en el panel de control de la parte superior de la vista.

  3. Observe que el panel CONSOLA DE DEPURACIÓN muestra los mismos mensajes sobre cómo configurar el depurador que se mostraron al iniciar un proceso de depuración desde el menú Ejecutar .

  4. En la barra de herramientas Depurar, seleccione Detener.

Examen de la salida de la aplicación

  1. Antes de cerrar el panel CONSOLA DE DEPURACIÓN, dedique un minuto a revisar la salida que generó el código.

  2. Observe que el mensaje de saludo de Andrew se repite inesperadamente.

Durante el resto de este módulo, usará las herramientas del depurador de Visual Studio Code para investigar los problemas de codificación.

Resumen

Estos son algunos de los aspectos más importantes que debe recordar de esta unidad:

  • El depurador de Visual Studio Code para C# usa el entorno de ejecución de .NET Core para iniciar e interactuar con una aplicación.
  • El menú Ejecutar de Visual Studio Code tiene opciones para iniciar una aplicación con y sin el depurador asociado.
  • La barra de herramientas Depurar incluye un botón para Detener un proceso en ejecución.
  • La vista RUN AND DEBUG incluye una opción para iniciar la depuración de una aplicación.