Compartir a través de


Tutorial: Aprenda a depurar código de Visual Basic mediante Visual Studio

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.

  1. Abre Visual Studio. Si la ventana de inicio no está abierta, seleccione Archivo>Ventana de inicio.

  2. En la ventana de inicio, seleccione Crear un proyecto.

  3. 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.

    Captura de pantalla que muestra la ventana Crear un nuevo proyecto con

    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 .

  4. En la ventana Configurar el nuevo proyecto , en Nombre del proyecto, escriba get-started-debugging. Después, seleccione Siguiente.

  5. En la ventana Información adicional , asegúrese de que .NET 10.0 está seleccionado para Framework y, a continuación, seleccione Crear.

  1. Abre Visual Studio. Si la ventana de inicio no está abierta, seleccione Archivo>Ventana de inicio.

  2. En la ventana de inicio, seleccione Crear un proyecto.

  3. 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.

    Captura de pantalla que muestra la ventana Crear un nuevo proyecto en Visual Studio 2022 con

    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 .

  4. En la ventana Configurar el nuevo proyecto , en Nombre del proyecto, escriba get-started-debugging. Después, seleccione Siguiente.

  5. 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!

  1. Presione F5 (Depurar > iniciar depuración) o seleccione el botón verde Iniciar depuración en la barra de herramientas depurar.

    Captura de pantalla que muestra la Barra de herramientas de depuración con el botón verde Iniciar depuración resaltado.

    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 10
    

    En este tutorial, eche un vistazo más a esta aplicación mediante el depurador y eche un vistazo a las características del depurador.

  2. Detenga el depurador presionando (Mayús + F5) o seleccione el botón rojo Detener depuración de la barra de herramientas de depuración.

    Captura de pantalla que muestra la Barra de herramientas de depuración, con el botón rojo 'Detener depuración' resaltado.

  3. 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

  1. En el For bucle de la Main funció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.

  2. 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.

    Captura de pantalla que muestra la ventana del editor de Visual Studio Code con la ejecución detenida en un 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.

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.

  1. Mientras la ejecución del código está en pausa en el bucle For del método Main, presione F11 (o elija Paso > en depuración) dos veces para avanzar a la llamada al método SendMessage.

    Después de presionar F11 dos veces, debe estar en esta línea de código:

    SendMessage(name, a(i))

  2. Presione F11 una vez más para entrar en el SendMessage método .

    El puntero amarillo avanza hacia el SendMessage método .

    Captura de pantalla que muestra una sesión de depuración en el editor de Visual Studio Code con la ejecución en pausa después de entrar en el mé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 SendMessage método y desea abandonar la función, pero permanecer en el depurador. Puedes hacerlo mediante el comando Salir del paso.

  3. 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 For en el método Main, en pausa en la llamada al método SendMessage.

  4. Presione F11 varias veces hasta que vuelva a la llamada al método SendMessage.

  5. 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.

    Captura de pantalla que muestra una sesión de depuración en el editor de Visual Studio Code con la ejecución en pausa después de pasar por alto la llamada al método

    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 la SendMessage llamada al método, en lugar de F11, se saltó el código de implementación de SendMessage. 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.

  1. Presione F5 para avanzar al punto de interrupción de nuevo.

  2. En el editor de código, desplázate hacia abajo y mantén el puntero sobre el Console.WriteLine método en el SendMessage método hasta que aparezca el botón verde Ejecutar al hacer clic. La información sobre herramientas del botón muestra Ejecutar hasta aquí.

    Captura de pantalla que muestra el botón Run to Click con el tooltip resaltado en el lado izquierdo de la ventana del editor de código.

  3. 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.

  1. Mientras la ejecución del código está en pausa en la name += letters[i] instrucción, pase el ratón por encima de la letters variable. Verá su valor predeterminado, el valor del primer elemento de la matriz, "f"c.

  2. A continuación, mantenga el puntero sobre la name variable para ver su valor actual, una cadena vacía.

  3. Presione F5 (o Depurar>continuar) varias veces para iterar varias veces a través del For bucle, pausar de nuevo en el punto de interrupción y mantener el puntero sobre la name variable cada vez para comprobar su valor.

    Captura de pantalla que muestra la ejecución de depuración detenida en el editor de código con la variable name resaltada y una sugerencia de datos que muestra el valor.

    El valor de la variable cambia con cada iteración del bucle For, mostrando los valores de f, luego fr, luego fre, 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

  1. 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.

  2. A continuación, examine la ventana Variables locales , en una pestaña situada junto a la ventana Automático .

  3. Expanda la letters variable para mostrar los elementos que contiene.

    Captura de pantalla que muestra la ventana Variables locales con la variable

    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.

  1. Mientras el depurador está pausado, haga clic derecho sobre la variable name y seleccione Añadir vigilancia.

    La ventana Inspección se abre de forma predeterminada en la parte inferior del editor de código.

  2. Ahora que ha establecido una inspección en la variable name, avance por el código para ver cómo el valor de la variable name cambia con cada iteración de bucle for.

    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

  1. Mientras la ejecución del código está en pausa en el For bucle, 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>.

  2. Seleccione F11 varias veces hasta que vea que el depurador se detiene en el método SendMessage. Examine la ventana Pila de llamadas .

    Captura de pantalla que muestra la ventana Pila de llamadas de Visual Studio con una llamada al método SendMessage resaltada en la línea superior.

    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 que SendMessage se llamó desde el Main mé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

  1. Presione F11 dos veces para ejecutar el Console.WriteLine método .

  2. 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ón Console.WriteLine.

  3. Presione F11.

    El depurador vuelve a ejecutar el Console.WriteLine mé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.

  4. Presione F5 para continuar ejecutando la aplicación.

    Enhorabuena por completar este tutorial.

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.