Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se presentan las características del depurador de Visual Studio en un tutorial paso a paso. Si quiere una vista de nivel superior de las características del depurador, consulte Información general del depurador de Visual Studio. Cuando depuras tu aplicación, normalmente significa que estás ejecutando la aplicación con el depurador adjunto. Al realizar esta tarea, el depurador proporciona muchas maneras de ver lo que hace el código mientras se ejecuta.
- Recorra el código y examine los valores almacenados en variables.
- Establezca relojes en variables para ver cuándo cambian los valores.
- Examina la ruta de ejecución de tu código para ver si se está ejecutando una ramificación de código.
Si este ejercicio es la primera vez que intenta depurar código, es posible que quiera leer Depuración para principiantes absolutos.
Aunque la aplicación de demostración de este artículo usa Visual Basic, la mayoría de las características se aplican a C#, C++, F#, Python, JavaScript y otros lenguajes compatibles con Visual Studio. F# no admite "Edit-and-continue". F# y JavaScript no admiten la ventana Automático . Las capturas de pantalla se encuentran en Visual Basic.
En este tutorial, usted hará lo siguiente:
- Iniciar el depurador y alcanzar puntos de interrupción
- Aprenda los comandos para avanzar paso a paso por el código en el depurador
- Inspeccionar variables en la información sobre datos y las ventanas del depurador
- Examinar la pila de llamadas
Prerrequisitos
Debe tener Visual Studio instalado, incluida la carga de trabajo de desarrollo multiplataforma de .NET Core.
- Si necesita instalar Visual Studio, para obtener una versión gratuita, consulte Descargas de Visual Studio.
- Si necesita instalar la carga de trabajo pero ya tiene Visual Studio, vaya a Herramientas>Obtener herramientas y características..., que abre el Instalador de Visual Studio. Elija la carga de trabajo Desarrollo de escritorio de .NET y, luego, seleccione Modificar.
Creación de un proyecto
En primer lugar, cree un proyecto de aplicación de consola de .NET Core. El tipo de proyecto incluye todos los archivos de plantilla que necesita, antes de agregar nada.
Abre Visual Studio. Si la ventana de inicio no está abierta, seleccione Archivo>Ventana de inicio.
En la ventana de inicio, seleccione Crear un proyecto.
En la ventana Crear un nuevo proyecto , en el cuadro de búsqueda, escriba la consola. A continuación, elija Visual Basic en la lista Idioma y, a continuación, elija Windows en la lista Plataforma.
Después de aplicar los filtros de idioma y plataforma, elija la plantilla Aplicación de consola para .NET Core y, a continuación, seleccione Siguiente.
Nota:
Si no ve la plantilla Aplicación de consola, puede instalarla desde la ventana Crear un nuevo proyecto. En el mensaje No encontrar lo que busca? , elija el vínculo Instalar más herramientas y características . A continuación, en el Instalador de Visual Studio, elija la carga de trabajo Desarrollo de escritorio de .NET .
En la ventana Configurar el nuevo proyecto , en Nombre del proyecto, escriba get-started-debugging. Después, seleccione Siguiente.
En la ventana Información adicional , asegúrese de que .NET 10.0 está seleccionado para Framework y, a continuación, seleccione Crear.
Abre Visual Studio. Si la ventana de inicio no está abierta, seleccione Archivo>Ventana de inicio.
En la ventana de inicio, seleccione Crear un proyecto.
En la ventana Crear un nuevo proyecto , en el cuadro de búsqueda, escriba la consola. A continuación, elija Visual Basic en la lista Idioma y, a continuación, elija Windows en la lista Plataforma.
Después de aplicar los filtros de idioma y plataforma, elija la plantilla Aplicación de consola para .NET Core y, a continuación, seleccione Siguiente.
Nota:
Si no ve la plantilla Aplicación de consola, puede instalarla desde la ventana Crear un nuevo proyecto. En el mensaje No encontrar lo que busca? , elija el vínculo Instalar más herramientas y características . A continuación, en el Instalador de Visual Studio, elija la carga de trabajo Desarrollo de escritorio de .NET .
En la ventana Configurar el nuevo proyecto , en Nombre del proyecto, escriba get-started-debugging. Después, seleccione Siguiente.
En la ventana Información adicional , asegúrese de que .NET 8.0 está seleccionado para Framework y, a continuación, seleccione Crear.
Visual Studio abre el nuevo proyecto.
Creación de la aplicación
En Program.vb, reemplace todo el código predeterminado por el código siguiente:
Imports System
Class ArrayExample
Public Shared Sub Main()
Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c}
Dim name As String = ""
Dim a As Integer() = New Integer(9) {}
For i As Integer = 0 To letters.Length - 1
name += letters(i)
a(i) = i + 1
SendMessage(name, a(i))
Next
Console.ReadKey()
End Sub
Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer)
Console.WriteLine("Hello, " & name & "! Count to " & msg)
End Sub
End Class
¡Inicia el depurador!
Presione F5 (Depurar > iniciar depuración) o seleccione el botón verde Iniciar depuración en la barra de herramientas depurar.
F5 inicia la aplicación con el depurador asociado al proceso de aplicación. Hasta ahora, no ha hecho nada especial para examinar el código. La aplicación se carga y simplemente ves la salida de la consola.
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10En este tutorial, eche un vistazo más a esta aplicación mediante el depurador y eche un vistazo a las características del depurador.
Detenga el depurador presionando (Mayús + F5) o seleccione el botón rojo Detener depuración de la barra de herramientas de depuración.
En la ventana de la consola, presione una tecla para cerrar la ventana de la consola.
Establecer un punto de interrupción e iniciar el depurador
En el
Forbucle de laMainfunción, establezca un punto de interrupción haciendo clic en el margen izquierdo en la siguiente línea de código:name += letters(i)Aparece un círculo rojo donde se establece el punto de interrupción.
Los puntos de interrupción son una de las características más básicas y esenciales de una depuración confiable. Un punto de interrupción indica dónde Visual Studio suspende el código en ejecución. Mientras está suspendido, puede observar los valores de las variables o el comportamiento de la memoria. Puede ver si se ejecuta una rama de código.
Presione F5 (Depurar > Iniciar Depuración) o el botón Iniciar Depuración en la barra de herramientas de depuración. La aplicación se inicia y el depurador avanza hasta la línea de código donde estableciste el punto de interrupción.
La flecha amarilla representa la sentencia en la que el depurador se ha detenido, lo cual también suspende la ejecución de la aplicación en el mismo punto. Esta instrucción aún no se ha ejecutado.
Si la aplicación aún no se está ejecutando, F5 inicia el depurador y se detiene en el primer punto de interrupción. De lo contrario, F5 continúa ejecutando la aplicación en el siguiente punto de interrupción.
Los puntos de interrupción son una característica útil cuando conoce la línea de código o la sección del código que desea examinar con detalle. Para obtener información sobre los distintos tipos de puntos de interrupción, vea Uso de puntos de interrupción.
Navegación por el código en el depurador mediante comandos de varios pasos
En este artículo se usan los métodos abreviados de teclado, ya que es una buena manera de ejecutar la aplicación rápidamente en el depurador. Muestra comandos equivalentes, como comandos de menú, entre paréntesis.
Mientras la ejecución del código está en pausa en el bucle
Fordel métodoMain, presione F11 (o elija Paso > en depuración) dos veces para avanzar a la llamada al métodoSendMessage.Después de presionar F11 dos veces, debe estar en esta línea de código:
SendMessage(name, a(i))Presione F11 una vez más para entrar en el
SendMessagemétodo .El puntero amarillo avanza hacia el
SendMessagemétodo .
F11 es el comando Entrar. Avanza la ejecución de la aplicación una instrucción cada vez. F11 es una buena manera de examinar el flujo de ejecución con más detalle. De forma predeterminada, el depurador omite el código que no es de usuario. Para obtener más información, consulte Just My Code.
Supongamos que ha terminado de analizar el
SendMessagemétodo y desea abandonar la función, pero permanecer en el depurador. Puedes hacerlo mediante el comando Salir del paso.Presione Mayús + F11 (o Depurar > Salir de paso).
Este comando reanuda la ejecución de la aplicación y avanza el depurador hasta que se devuelve el método o la función actual.
Debería volver al bucle
Foren el métodoMain, en pausa en la llamada al métodoSendMessage.Presione F11 varias veces hasta que vuelva a la llamada al método
SendMessage.Mientras la ejecución del código está en pausa en la llamada al método, presione F10 (o elija Depuración > Saltar) una vez.
Esta vez, el depurador no entra en el método
SendMessage. F10 permite avanzar el depurador sin entrar en funciones ni métodos en tu código de la aplicación. El código todavía se ejecuta. Al pulsar F10 durante laSendMessagellamada al método, en lugar de F11, se saltó el código de implementación deSendMessage. Para más información sobre las distintas formas de desplazarse por el código, vea Navegación por el código en el depurador.
Navegar por el código mediante Ejecutar hasta hacer clic
Presione F5 para avanzar al punto de interrupción de nuevo.
En el editor de código, desplázate hacia abajo y mantén el puntero sobre el
Console.WriteLinemétodo en elSendMessagemétodo hasta que aparezca el botón verde Ejecutar al hacer clic. La información sobre herramientas del botón muestra Ejecutar hasta aquí.
Seleccione el botón Ejecutar para hacer clic .
El depurador avanza al método
Console.WriteLine.El uso de este botón es similar a establecer un punto de interrupción temporal. Run to Click es muy útil para desplazarse rápidamente dentro de una región visible del código de la aplicación, la cual se puede seleccionar en cualquier archivo abierto.
Reinicio rápido de la aplicación
Para reiniciar la aplicación, presione la combinación de teclas Ctrl + Mayús + F5 . Ahorra tiempo en comparación con detener la aplicación y reiniciar el depurador. El depurador se detiene en el primer punto de interrupción que se alcanza al ejecutar el código.
El depurador se detiene de nuevo en el punto de interrupción que estableció anteriormente dentro del For bucle.
Inspeccionar variables con información sobre datos
El depurador tiene características que permiten inspeccionar variables. Hay diferentes maneras de inspeccionar variables. A menudo, al intentar depurar un problema, intenta averiguar si las variables almacenan los valores que espera que tengan en un momento determinado.
Mientras la ejecución del código está en pausa en la
name += letters[i]instrucción, pase el ratón por encima de lalettersvariable. Verá su valor predeterminado, el valor del primer elemento de la matriz,"f"c.A continuación, mantenga el puntero sobre la
namevariable para ver su valor actual, una cadena vacía.Presione F5 (o Depurar>continuar) varias veces para iterar varias veces a través del
Forbucle, pausar de nuevo en el punto de interrupción y mantener el puntero sobre lanamevariable cada vez para comprobar su valor.
El valor de la variable cambia con cada iteración del bucle
For, mostrando los valores def, luegofr, luegofre, etc.A menudo, cuando se depura código, se busca una manera rápida de comprobar los valores de las propiedades de las variables para ver si almacenan los valores que se espera que almacenen. Los consejos de datos son una buena manera de hacerlo.
Inspección de variables con las ventanas Automático y Variables locales
Mira la ventana Autos en la parte inferior del editor de código.
Si está cerrado, ábralo mientras la ejecución del código está en pausa en el depurador eligiendo Depurar>Windows>Autos.
En la ventana Automático , verá variables y su valor actual. La ventana Automático muestra todas las variables usadas en la línea actual o en la línea anterior. Consulte la documentación sobre el comportamiento específico del lenguaje.
A continuación, examine la ventana Variables locales , en una pestaña situada junto a la ventana Automático .
Expanda la
lettersvariable para mostrar los elementos que contiene.
La ventana Locales muestra las variables que se encuentran en el ámbito actual , es decir, el contexto de ejecución actual.
Establecimiento de un reloj
Puede especificar una variable o una expresión que desee vigilar mientras recorre el código. Para ello, adiciónela a la ventana Inspección.
Mientras el depurador está pausado, haga clic derecho sobre la variable
namey seleccione Añadir vigilancia.La ventana Inspección se abre de forma predeterminada en la parte inferior del editor de código.
Ahora que ha establecido una inspección en la variable
name, avance por el código para ver cómo el valor de la variablenamecambia con cada iteración de buclefor.A diferencia de las otras ventanas de variables, en la ventana Inspección siempre se muestran las variables que está viendo. Las variables que están fuera del ámbito se muestran como no disponibles.
Para obtener más información sobre la ventana Watch, vea Inspeccionar variables con ventanas Watch.
Examinar la pila de llamadas
Mientras la ejecución del código está en pausa en el
Forbucle, seleccione la ventana Pila de llamadas , que está abierta de forma predeterminada en el panel inferior derecho.Si está cerrado, ábralo mientras la ejecución del código está en pausa en el depurador seleccionando Depurar>pila de llamadas de>.
Seleccione F11 varias veces hasta que vea que el depurador se detiene en el método
SendMessage. Examine la ventana Pila de llamadas .
En la ventana Pila de llamadas se muestra el orden en el que se llama a los métodos y las funciones. La línea superior muestra la función actual. En este ejemplo, es el método
SendMessage. La segunda línea muestra queSendMessagese llamó desde elMainmétodo , etc.Nota:
La ventana Pila de llamadas es similar a la perspectiva de depuración en algunas herramientas de programación, como las de Eclipse.
La pila de llamadas es una buena manera de examinar y comprender el flujo de ejecución de una aplicación.
Puede hacer doble clic en una línea de código para examinar ese código fuente, y también cambia el ámbito actual que está siendo inspeccionado por el depurador. Esta acción no hace avanzar al depurador.
También puede usar los menús contextuales de la ventana Pila de llamadas para hacer otras cosas. Por ejemplo, puede insertar puntos de interrupción en funciones especificadas, avanzar el depurador mediante Ejecutar al cursor y examinar el código fuente. Para obtener más información, vea Cómo: Examinar la pila de llamadas.
Cambio del flujo de ejecución
Presione F11 dos veces para ejecutar el
Console.WriteLinemétodo .Con el depurador actualmente en pausa en la llamada al método
SendMessage, use el mouse para tomar la flecha amarilla o el puntero de ejecución en el margen izquierdo y arrastre el puntero hacia arriba una línea hasta la instrucciónConsole.WriteLine.Presione F11.
El depurador vuelve a ejecutar el
Console.WriteLinemétodo . Verá esta acción en la salida de la ventana de consola.Al cambiar el flujo de ejecución, puede probar diferentes caminos de ejecución del código o volver a ejecutar código sin reiniciar el depurador.
Advertencia
A menudo debe tener cuidado con esta funcionalidad. Hay una advertencia en el tooltip. También puede ver otras advertencias. Mover el puntero no puede revertir la aplicación a un estado de aplicación anterior.
Presione F5 para continuar ejecutando la aplicación.
Enhorabuena por completar este tutorial.
Contenido relacionado
En este tutorial, ha aprendido a iniciar el depurador, recorrer el código e inspeccionar variables. Es posible que desee obtener una visión general de las características del depurador junto con vínculos a más información.