Examen de las opciones de configuración del punto de interrupción
- 6 minutos
Los depuradores se usan para ayudarle a analizar el código y se pueden usar para controlar la ejecución en tiempo de ejecución del programa. Al iniciar el depurador de Visual Studio Code, comienza inmediatamente a ejecutar el código. Dado que el código se ejecuta en micro segundos, la depuración de código eficaz depende de la capacidad de pausar el programa en cualquier instrucción del código. Los puntos de interrupción se usan para especificar dónde se detiene la ejecución del código.
Establecer puntos de interrupción
Visual Studio Code proporciona varias maneras de configurar puntos de interrupción en el código. Por ejemplo:
- Editor de código: puede establecer un punto de interrupción en el editor de Visual Studio Code haciendo clic en la columna situada a la izquierda de un número de línea.
- Menú Ejecutar: puede activar o desactivar un punto de interrupción en el menú Ejecutar. La línea de código actual del Editor especifica dónde se aplica la acción Alternar punto de interrupción.
Cuando se establece un punto de interrupción, se muestra un círculo rojo a la izquierda del número de línea en el Editor. Al ejecutar el código en el depurador, la ejecución se detiene en el punto de interrupción.
Quitar, deshabilitar y habilitar puntos de interrupción
Después de establecer puntos de interrupción en la aplicación y usarlos para aislar un problema, es posible que desee quitar o deshabilitar los puntos de interrupción.
Para quitar un punto de interrupción, repita la acción utilizada para establecer un punto de interrupción. Por ejemplo, haga clic en el círculo rojo situado a la izquierda del número de línea o use la opción de alternar punto de interrupción en el menú Ejecutar.
¿Qué ocurre si desea mantener una ubicación de punto de interrupción, pero no quiere que se desencadene durante la siguiente sesión de depuración? Visual Studio Code permite "deshabilitar" un punto de interrupción en lugar de quitarlo por completo. Para deshabilitar un punto de interrupción activo, haga clic con el botón derecho en el punto rojo situado a la izquierda del número de línea y, a continuación, seleccione Deshabilitar punto de interrupción en el menú contextual.
Cuando se deshabilita un punto de interrupción, el punto rojo a la izquierda del número de línea se cambia a un punto gris.
Nota:
El menú contextual que aparece al hacer clic con el botón derecho en un punto de interrupción también incluye las opciones para Quitar punto de interrupción (Eliminar) y Editar punto de interrupción. La opción Editar punto de interrupción se examina en la sección Puntos de interrupción condicionales y Puntos de registro más adelante en esta unidad.
Además de administrar puntos de interrupción individuales en el Editor, el menú Ejecutar proporciona opciones para realizar operaciones masivas que actúan en todos los puntos de interrupción:
- Habilitar todos los puntos de interrupción: use esta opción para habilitar todos los puntos de interrupción deshabilitados.
- Deshabilitar todos los puntos de interrupción: use esta opción para deshabilitar todos los puntos de interrupción.
- Quitar todos los puntos de interrupción: use esta opción para quitar todos los puntos de interrupción (se quitan los puntos de interrupción habilitados y deshabilitados).
Puntos de interrupción condicionales
Un punto de interrupción condicional es un tipo especial de punto de interrupción que solo se desencadena cuando se cumple una condición especificada. Por ejemplo, puede crear un punto de interrupción condicional que detenga la ejecución cuando una variable denominada numItems sea mayor que 5.
Ya ha visto que al hacer clic con el botón derecho en un punto de interrupción se abre un menú contextual que incluye la opción Editar punto de interrupción. Al seleccionar Editar punto de interrupción, puede cambiar un punto de interrupción estándar en un punto de interrupción condicional.
Además de editar un punto de interrupción existente, también puede establecer un punto de interrupción condicional directamente. Si hace clic con el botón derecho (en lugar de hacer clic con el botón izquierdo) para establecer un nuevo punto de interrupción, puede elegir crear un punto de interrupción condicional.
Al crear un punto de interrupción condicional, debe especificar una expresión que represente la condición.
Cada vez que el depurador encuentra el punto de interrupción condicional, evalúa la expresión. Si la expresión se evalúa como true, el punto de interrupción se desencadena y la ejecución se pausa. Si la expresión se evalúa como false, la ejecución continúa como si no hubiera ningún punto de interrupción.
Por ejemplo, supongamos que necesita depurar código que está dentro del bloque de código de un for bucle. Ha observado que el problema que está depurando solo se produce después de que el bucle haya completado varias iteraciones. Decide que desea que el punto de interrupción se desencadene una vez que la variable de control de iteración del bucle, i, sea mayor que tres. Cree un punto de interrupción condicional y especifique la expresión i > 3.
Cuando se ejecuta el código en el depurador, se omite el punto de interrupción hasta la iteración cuando i > 3 se evalúa como true. Cuando i = 4, la ejecución se detiene en el punto de interrupción condicional.
Compatibilidad con Hit Count puntos de interrupción y Logpoints
El depurador de C# para Visual Studio Code también admite los puntos de interrupción Hit Count y Logpoints.
Se puede usar un punto de interrupción de "número de llamadas" para especificar las veces que se debe encontrar un punto de interrupción antes de que se "interrumpa". Puede especificar un valor de número de llamadas al crear un nuevo punto de interrupción (con la acción Agregar punto de interrupción condicional) o al modificar uno existente (con la acción Editar condición). En ambos casos, se abre un cuadro de texto insertado con un menú desplegable para que especifique el valor de número de llamadas.
Un "punto de registro" es una variante de los puntos de interrupción que no se "divide" en el depurador, sino que registra un mensaje en la consola. Los puntos de registro son especialmente útiles para insertar registros durante la depuración de entornos de producción que no se pueden pausar ni detener. Un punto de registro se representa mediante un icono con forma de "diamante" en lugar de círculo relleno. Los mensajes de registro son texto sin formato, pero pueden incluir expresiones entre llaves ("{}") para evaluarlas.
Los puntos de registro pueden incluir una "expresión" condicional o "número de llamadas" para controlar aún más cuándo se generan mensajes de registro. Por ejemplo, puede combinar un mensaje de punto de registro de i = {i} con la condición de número de llamadas >4 para generar mensajes de registro de la siguiente manera:
Resumen
Estos son algunos de los aspectos más importantes que debe recordar de esta unidad:
- Visual Studio Code habilita la configuración de puntos de interrupción en el editor de código o en el menú Ejecutar. Las líneas de código del punto de interrupción se marcan con un punto rojo a la izquierda del número de línea.
- Los puntos de interrupción se pueden quitar o deshabilitar con las mismas opciones que se usan para establecerlos. Las operaciones masivas que afectan a todos los puntos de interrupción están disponibles en el menú Ejecutar.
- Los puntos de interrupción condicionales se pueden usar para pausar la ejecución cuando se cumpla una condición especificada o cuando se alcance un "número de llamadas".
- Los puntos de registro se pueden usar para registrar información en el terminal sin pausar la ejecución ni insertar código.