Tutorial: Depuración de una aplicación de consola de .NET mediante Visual Studio Code
En este tutorial se presentan las herramientas de depuración disponibles en Visual Studio Code para trabajar con aplicaciones .NET.
Prerrequisitos
- Este tutorial funciona con la aplicación de consola que se crea en Creación de una aplicación de consola de .NET mediante Visual Studio Code.
Uso de la configuración de compilación de depuración
Depuración y Versión son las configuraciones de compilación integradas de .NET. 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, la configuración de lanzamiento de Visual Studio Code usa la configuración de compilación Depuración, por lo que no es necesario cambiarla antes de realizar esta operación.
Inicie Visual Studio Code.
Abra la carpeta del proyecto que creó en Creación de una aplicación de consola de .NET mediante Visual Studio Code.
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 que lo incluye.
Abra el archivo Program.cs.
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. 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 presionar F9 o seleccionar Ejecutar>Alternar punto de interrupción en el menú mientras se elige la línea de código.
Visual Studio Code indica la línea en la que se establece el punto de interrupción mostrando un punto rojo en el margen izquierdo.
Iniciar depuración
Para abrir la vista Depurar, seleccione el icono Depuración en el menú del lado izquierdo.
Seleccione Ejecutar y depurar. Si se le pide, seleccione C# y, a continuación, seleccione C#: Iniciar proyecto. Otras formas de iniciar el programa en modo de depuración son presionar F5 o elegir Ejecutar>Iniciar depuración en el menú.
Si se le pide que seleccione Configuración de lanzamiento, seleccione C#: HelloWorld HelloWorld.
Seleccione la pestaña Consola de Depuración para ver el mensaje "¿Cuál es tu nombre?" que muestra el programa antes de esperar una respuesta.
Escriba una cadena en la ventana Consola de depuración para responder a la pregunta del nombre y presione Intro.
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 sección Locales de la ventana Variables muestra los valores de las variables definidas en el método actualmente en ejecución.
Uso de la consola de depuración
La ventana Consola de depuración permite interactuar con la aplicación que está depurando. Puede cambiar el valor de las variables para ver cómo afecta al programa.
Seleccione la pestaña Consola de depuración.
Escriba
name = "Gracie"
en el símbolo del sistema de la parte inferior de la ventana Consola de depuración y presione Intro.Escriba
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
en la parte inferior de la ventana Consola de depuración y presione Intro.La ventana Variables muestra los nuevos valores de las variables
name
ycurrentDate
.Para continuar la ejecución del programa, seleccione el botón continuar
de la barra de herramientas. Otra manera de continuar es presionar F5. Los valores mostrados en la ventana de la consola corresponden a los cambios realizados en Consola de depuración.
Presione Intro 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.
Haga clic con el botón derecho (Ctrl-haga clic en macOS) en el punto rojo que representa el punto de interrupción. En el menú contextual, seleccione Editar punto de interrupción para abrir un cuadro de diálogo que le permita escribir una expresión condicional.
Seleccione
Expression
en el menú desplegable, escriba esta expresión condicional y presione Entrar.String.IsNullOrEmpty(name)
Cada vez que se alcanza el punto de interrupción, el depurador llama al método
String.IsNullOrEmpty(name)
y se interrumpe en esta línea solo si la llamada al método devuelvetrue
.En lugar de una expresión condicional, puede especificar un número de llamadas, que interrumpe la ejecución del programa antes de que se ejecute una instrucción un número de veces especificado. 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.
Inicie el programa en modo de depuración presionando F5.
En la pestaña Consola de depuración, presione Intro cuando se le pida que escriba su nombre.
Dado que se ha cumplido la condición especificada (
name
esnull
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étodoConsole.WriteLine
.La ventana de variables muestra que el valor de la variable
name
es""
o String.Empty.Confirme que el valor es una cadena vacía escribiendo la siguiente instrucción en el indicador de la consola de depuración y presionando Enter. El resultado es
true
.name == String.Empty
Seleccione el botón Continuar de la barra de herramientas para continuar con la ejecución del programa.
Presione Intro para salir del programa y detenga la depuración.
Borre el punto de interrupción haciendo clic en el punto del margen izquierdo de la ventana de código. Otras maneras de borrar un punto de interrupción consisten en presionar F9 o elegir Ejecutar > Alternar punto de interrupción en el menú mientras se selecciona la línea de código.
Si recibe una advertencia que indica que se perderá la condición del punto de interrupción, seleccione Quitar punto de interrupción.
Ejecución paso a paso de un programa
Visual Studio Code 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. Puesto que este programa es pequeño, usted puede ejecutar paso a paso todo el programa.
Establezca un punto de interrupción en la llave de apertura del método
Main
.Presione F5 para iniciar la depuración.
Visual Studio Code resalta la línea de punto de ruptura.
En este momento, la ventana Variables de
muestra que la matriz de está vacía y y tienen valores predeterminados. Seleccione Ejecutar>Paso a paso por instrucciones o presione F11.
Botón
Step-Into Visual Studio Code resalta la línea siguiente.
Seleccione Ejecutar>Entrar en o presione F11.
Visual Studio Code ejecuta
Console.WriteLine
para el mensaje de nombre y resalta la línea de ejecución siguiente. La línea siguiente esConsole.ReadLine
paraname
. La ventana Variables permanece sin cambios y la pestaña Terminal muestra el mensaje "¿Cuál es tu nombre?".Seleccione Ejecutar>Entrar en o presione F11.
Visual Studio resalta la asignación de variables
name
. La ventana Variables muestra quename
todavía esnull
.Responda a la solicitud introduciendo una cadena en la pestaña Terminal y presionando Enter.
Es posible que la pestaña Consola de depuración no muestre la cadena mientras la está escribiendo, pero el método Console.ReadLine capturará la entrada.
Seleccione Ejecutar>Paso a paso por instrucciones o presione F11.
Visual Studio Code resalta la asignación de la variable
currentDate
. La ventana de Variables muestra el valor devuelto por la llamada al método Console.ReadLine. La pestaña Terminal muestra la cadena que escribió en el prompt.Seleccione Ejecutar>Paso a paso por instrucciones o presione F11.
La ventana Variables muestra el valor de la variable
currentDate
después de la asignación de la propiedad DateTime.Now.Seleccione Ejecutar>Paso a paso por instrucciones o presione F11.
Visual Studio Code llama al método Console.WriteLine(String, Object, Object). La ventana de la consola muestra la cadena con formato.
Seleccione Ejecutar>Paso a paso para salir o presione Mayús+F11.
botón
El terminal muestra "Presione cualquier tecla para salir..."
Presione cualquier tecla para salir del programa.
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 de lanzamiento incorpora optimizaciones del compilador que pueden afectar 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 consola, abra Terminal y ejecute el siguiente comando:
dotnet run --configuration Release
Recursos adicionales
Pasos siguientes
En este tutorial, ha usado las herramientas de depuración de Visual Studio Code. En el siguiente tutorial, publicará una versión implementable de la aplicación.