Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Depuración con Visual Studio: Puntos de interrupción condicionales

Todo programador que haya trabajado con Visual Studio sabe que puede establecer un punto de interrupción en cualquier línea simplemente pulsando con el ratón en el borde del editor, delante de la línea que le interese:

Creación de un punto de interrupcion

El punto de interrupción se marca con un círculo de color rojo y de esta forma, la próxima vez que el código se ejecute y pase por esa línea, se detendrá ahí y nos ayudará a depurar la aplicación. Podremos consultar los valores de todas nuestras variables y examinarlas, cambiar dichos valores, mover la ejecución a otro punto, etc...

Al pulsar sobre el punto de interrupción en Visual Studio 2015 o posterior (en otras versiones había que usar el menú contextual), se nos ofrece un pequeño menú con dos iconos:

VS-Puntos-Interrupcion-Opciones-01

El icono de la derecha sirve para deshabilitar temporalmente el punto de interrupción y que no surta efecto. El de la izquierda, seleccionado en la figura, nos brinda opciones avanzadas para el punto de interrupción al pulsarlo:

VS-Puntos-Interrupcion-Opciones-02

Como vemos disponemos de dos cuadros de verificación que podemos marcar. Vamos a preocuparnos del primero ("Conditions" o "Condiciones" si tienes VS en español) y dejaremos el segundo para otro artículo posterior.

Si pulsamos sobre "Condiciones" podremos decidir cuándo tendrá efecto el punto de interrupción. Es decir, no solo si funciona o no funciona, sino también bajo qué condiciones concretas se detendrá la ejecución. Esto nos permite tener un control total sobre cuándo se parará el programa y puede ser muy útil en muchas ocasiones.

Al pulsarlo se nos ofrece una lista desplegable desde la que podremos elegir entre tres opciones, y otras tantos tipos de condición:

1. Expresiones condicionales

Si escogemos esta opción la interfaz cambia y se nos muestra lo siguiente:

VS-Puntos-Interrupcion-Opciones-03

Como vemos, podemos escribir cualquier expresión condicional (como las que van dentro de una estructura if-else de C#) y elegir si se detendrá la ejecución cuando sea verdadera o falsa.

Así, podríamos parar la ejecución solo cuando se den ciertas condiciones concretas que nos interesen, lo cual puede ser de mucha ayuda.

2. Contador de vueltas

La segunda opción del desplegable nos permite contar cuántas veces pasa la ejecución por ese punto y que se pare solamente cuando haya pasado en un número determinado de ocasiones:

VS-Puntos-Interrupcion-Opciones-04

Esto es especialmente útil para aquellos casos en los que debemos depurar un bucle en el que sabemos que hay un problema pero solo al cabo de un número determinado de vueltas. O un código por el que se pasan varias veces hasta que nos interesa depurarlo, como por ejemplo un método de una clase que no falla hasta que hay ciertos datos cargados, pero que se ejecuta por el medio en varias ocasiones. Cosas así.

3. Filtros

Por fin la tercera opción, más avanzada, son los filtros por parámetros del proceso:

VS-Puntos-Interrupcion-Opciones-05

En este caso nos permite establecer condiciones como en la primera opción, pero atándolas a información del proceso actual, como el nombre de la máquina en la que se ejecuta el código (útil para depuración remota), el identificador o el nombre del proceso o del hilo (útil para depuración de aplicaciones multi-subproceso).

Aspecto

Cuando un punto de interrupción tiene alguna condición aplicada podemos identificarlo de manera visual muy rápidamente ya que tienen un "+" dentro del círculo para distinguirlos bien.

Además, cuando nos ponemos encima con el cursor nos muestran en un tooltip la condición filtro que le hayamos establecido, por lo que no es necesario volver a editarlos para verla:

VS-Puntos-Interrupcion-Opciones-06

Con todas estas opciones podemos depurar más fácilmente nuestro código, teniendo un control mayor sobre cuándo lo detenemos para observarlo.

¡Espero que te resulte útil!

José M. Alarcón Aguín Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José M. Alarcón Aguín
Archivado en: Trucos

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.