Compartir vía


Tutorial: Depuración de una aplicación de consola de .NET mediante Visual Studio

En este tutorial se presentan las herramientas de depuración disponibles en Visual Studio.

Importante

Todos los métodos abreviados de teclado se basan en los valores predeterminados de Visual Studio. Los métodos abreviados de teclado pueden variar, para obtener más información, consulte Métodos abreviados de teclado en Visual Studio.

Prerrequisitos

Uso de la configuración de compilación de depuración

Debug y Release son las configuraciones de compilación integradas de Visual Studio. Use la configuración de compilación Depuración para depurar y la configuración de compilación Versión para la distribución final de la versión.

En la configuración de depuración, un programa se compila con información de depuración simbólica completa y sin optimización. La optimización complica la depuración, ya que la relación entre el código fuente y las instrucciones generadas es más compleja. La configuración de versión del programa no contiene información de depuración simbólica y está totalmente optimizada.

De forma predeterminada, Visual Studio usa la configuración de compilación Depuración, por lo que no es necesario cambiarla antes de depurar.

  1. Inicie Visual Studio.

  2. Abra el proyecto que creó en Creación de una aplicación de consola de .NET mediante Visual Studio.

    La configuración de compilación actual se muestra en la barra de herramientas. La siguiente imagen de barra de herramientas muestra que Visual Studio está configurado para compilar la versión de depuración de la aplicación:

    Barra de herramientas de Visual Studio con Depuración resaltado

Establecer un punto de interrupción

Un punto de interrupción interrumpe temporalmente la ejecución de la aplicación antes de que se ejecute la línea con el punto de interrupción.

  1. Establezca un punto de interrupción en la línea que muestre el nombre, la fecha y la hora; para ello, haga clic en el margen izquierdo de la ventana de código de esa línea. El margen izquierdo está a la izquierda de los números de línea. Otras maneras de establecer un punto de interrupción consisten en colocar el cursor en la línea de código y, después, presionar F9 o seleccionar Depurar>Alternar punto de interrupción en la barra de menú.

    Como se muestra en la imagen siguiente, Visual Studio indica la línea en la que se establece el punto de interrupción resaltando y mostrando un punto rojo en el margen izquierdo.

    ventana del programa de Visual Studio con un punto de interrupción establecido

  2. Presione F5 para ejecutar el programa en modo de depuración. Otra manera de comenzar a depurar es seleccionando en el menú la opción Depurar>Iniciar depuración.

  3. Cuando el sistema le pida un nombre, escriba una cadena en la ventana de consola y luego presione Entrar.

  4. La ejecución del programa se detiene cuando alcanza el punto de interrupción y antes de que se ejecute el método Console.WriteLine. La ventana Variables locales muestra los valores de las variables definidas en el método que se está ejecutando actualmente.

    Captura de pantalla de un punto de interrupción en Visual Studio

Uso de la ventana Inmediato

La ventana Inmediato le permite interactuar con la aplicación que está depurando. Puede cambiar interactivamente el valor de las variables para ver cómo afecta al programa.

  1. Si la ventana Inmediato no está visible, muéstrela; para ello, elija Depurar>Ventanas>Inmediato.

  2. Escriba name = "Gracie" en la ventana Inmediato y presione la tecla Entrar.

  3. Escriba currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() en la ventana Inmediato y presione la tecla Entrar.

    La ventana Inmediato muestra el valor de la variable de cadena y las propiedades del valor DateTime. Además, los valores de las variables se actualizan en la ventana Variables locales.

    Ventanas Variables locales e Inmediato en Visual Studio 2019

  4. Presione F5 para continuar la ejecución del programa. Otra manera de hacerlo es elegir Depuración>Continuar en el menú.

    Los valores mostrados en la ventana de la consola corresponden a los cambios realizados en la ventana Inmediato.

    ventana consola de en la que se muestran los valores especificados

  5. Presione cualquier tecla para salir de la aplicación y detenga la depuración.

Establecimiento de un punto de interrupción condicional

El programa muestra la cadena que escribe el usuario. ¿Qué ocurre si el usuario no escribe nada? Puede probarlo con una característica de depuración muy útil denominada Punto de interrupción condicional.

  1. Haga clic con el botón derecho en el punto rojo que representa el punto de interrupción. En el menú contextual, seleccione Condiciones para abrir el cuadro de diálogo Configuración del punto de interrupción. Active la casilla Condiciones si aún no está seleccionada.

    Editor con el panel de configuración de puntos de interrupción: C#

  2. En la expresión condicional , escriba el código siguiente en el campo que contiene el código de ejemplo que comprueba si x es 5.

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Cada vez que se alcanza el punto de interrupción, el depurador invoca el método String.IsNullOrEmpty(name), y se detiene en esta línea solo si la invocación del método devuelve true.

    En lugar de una expresión condicional, puede especificar un contador de ejecuciones, que interrumpe la ejecución del programa antes de que una instrucción se ejecute un número especificado de veces. Otra opción consiste en especificar una condición de filtro , que interrumpe la ejecución del programa en función de estos atributos como un identificador de subproceso, un nombre de proceso o un nombre de subproceso.

  3. Seleccione Cerrar para cerrar el cuadro de diálogo.

  4. Inicie el programa con la depuración presionando F5.

  5. En la ventana de consola, cuando se le pida que escriba su nombre, presione la tecla Entrar.

  6. Dado que se ha cumplido la condición especificada (name es null o String.Empty), la ejecución del programa se detiene cuando alcanza el punto de interrupción y antes de que se ejecute el método Console.WriteLine.

  7. Seleccione la ventana Variables locales, que muestra los valores de las variables que son locales para el método que se está ejecutando actualmente. En este caso, Main es el método que se está ejecutando actualmente. Observe que el valor de la variable name es ""o String.Empty.

  8. Confirme que el valor es una cadena vacía escribiendo la siguiente instrucción en la ventana Inmediato y presionando Entrar. El resultado es true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    El signo de interrogación dirige la ventana Inmediato para evaluar una expresión.

    La Ventana Inmediata devuelve un valor verdadero después de ejecutar la instrucción - C#

  9. Presione F5 para continuar la ejecución del programa.

  10. Presione cualquier tecla para cerrar la ventana de consola y detener la depuración.

  11. Borre el punto de interrupción haciendo clic en el punto del margen izquierdo de la ventana de código. Otras formas de borrar un punto de interrupción consisten en presionar F9 o elegir Depurar > Alternar punto de interrupción mientras se selecciona la línea de código.

Ejecución paso a paso de un programa

Visual Studio también le permite recorrer paso a paso línea por línea a través de un programa y supervisar su ejecución. Normalmente, establecería un punto de interrupción y seguiría el flujo del programa a través de una pequeña parte del código del programa. Como este programa es pequeño, puede ejecutar paso a paso el programa entero.

  1. Elija Depurar>Depurar paso a paso por instrucciones. Otra manera de depurar una instrucción cada vez es presionar F11.

    Visual Studio resalta y muestra una flecha situada junto a la siguiente línea de ejecución.

    C#

    Método Paso a paso por instrucciones de Visual Studio: C#

    Visual Basic

    Método Paso a paso por instrucciones de Visual Studio: Visual Basic

    En este momento, la ventana Variables locales muestra que la matriz de args está vacía y name y currentDate tienen valores predeterminados. Además, Visual Studio ha abierto una ventana de consola en blanco.

  2. Presione F11. Visual Studio ahora resalta la siguiente línea de ejecución. La ventana Variables locales no cambia y la ventana de consola permanece en blanco.

    C#

    Origen del método Paso a paso por instrucciones de Visual Studio: C#

    Visual Basic

    Origen del método Paso a paso por instrucciones de Visual Studio: Visual Basic

  3. Presione F11. Visual Studio resalta la instrucción que incluye la asignación de variables name. La ventana Variables locales muestra que name es nully la ventana de consola muestra la cadena "¿Cuál es tu nombre?".

  4. Para responder a la solicitud, escriba una cadena en la ventana de consola y presione Entrar. La consola no responde y la cadena especificada no se muestra en la ventana de la consola, pero el método Console.ReadLine capturará la entrada.

  5. Presione F11. Visual Studio resalta la instrucción que incluye la asignación de variables currentDate. La ventana Variables locales muestra el valor devuelto por la llamada al método Console.ReadLine. La ventana de la consola también muestra la cadena que escribió en la solicitud.

  6. Presione F11. La ventana Variables locales muestra el valor de la variable currentDate tras la asignación desde la propiedad DateTime.Now. La ventana de la consola no cambia.

  7. Presione F11. Visual Studio llama al método Console.WriteLine(String, Object, Object). La ventana de la consola muestra la cadena con formato.

  8. Elija Depurar>Depurar paso a paso para salir. Otra manera de detener la ejecución paso a paso es presionar Mayús+F11.

    La ventana de la consola muestra un mensaje y espera a que presione una tecla.

  9. Presione cualquier tecla para cerrar la ventana de consola y detener la depuración.

Uso de la configuración de compilación de versión

Una vez que ha probado la versión de depuración de la aplicación, también debe compilar y probar la versión de lanzamiento. La versión release incorpora optimizaciones del compilador que a veces pueden afectar negativamente al comportamiento de una aplicación. Por ejemplo, las optimizaciones del compilador diseñadas para mejorar el rendimiento pueden crear condiciones de carrera en aplicaciones multiproceso.

Para compilar y probar la versión de lanzamiento de la aplicación de la consola, cambie la configuración de compilación en la barra de herramientas de Depurar a Versión.

barra de herramientas predeterminada de Visual Studio con la versión resaltada

Cuando presiona F5 o elije Compilar solución en el menú Compilar, Visual Studio compila la versión de lanzamiento de la aplicación. Puedes probarlo igual que hiciste con la versión Debug.

Pasos siguientes

En este tutorial, usaste las herramientas de depuración de Visual Studio. En el siguiente tutorial, publicará una versión implementable de la aplicación.