Skip to content

Eclipse. Breakpoints Condicionales

1 octubre 2011

Una opción que sin duda me ahorra una gran cantidad de tiempo a la hora de depurar los programas en Java son los puntos de ruptura condicionales, es decir, necesito que cuando el programa llegue a una determinada línea del código se detenga, pero sólo si las condiciones que indicamos se cumplen.

Por ejemplo, imaginemos que hemos leído de una base de datos un conjunto de valores de 600 elementos, posteriormente estos 600 elementos iremos procesándolos uno a uno y añadiendo cada elemento leído a una hoja de cálculo dentro de un bucle. Al terminar la ejecución del programa vemos que en el elemento 200 el proceso ha fallado y los datos que se han introducido son erróneos. En este punto, si queremos depurar el programa pondríamos un punto de interrupcion dentro del bucle while que procesa los elementos, pero si el fallo se encuentra en el elemento 200, tendremos que ir manualmente saltando cada iteración del bucle hasta llegar al valor que nos interesa depurar.

Esta idea de por sí ya resulta demasiado tediosa, así es que vamos a tomar una solución mucho más elegante, cómoda y rápida. Vamos a poner un punto de ruptura (breakpoint) condicional. Para ello, simplemente añadimos un breakpoint normal y hacemos click derecho en el globito azul que nos aparece justo encima del número de línea de nuestro código y que indica que ahí hemos colocado el breakpoint. Seleccionamos ‘Breakpoint Properties‘ y seguimos.

Propiedades del Breakpoint

El siguiente paso será definir las opciones para convertir a ese punto de ruptura, en un punto de ruptura condicional. Nos aparece la siguiente pantalla (muy simple de entender):

Configuración del Breakpoint Condicional

Marcamos la casilla ‘Conditional‘ y en el cuadro de texto que nos aparece abajo indicamos la condición. Debemos escribir una sentencia que se evalúe a un valor booleano (true o false), de cualquier otra forma al alcanzar el punto de ruptura, el compilador nos mostrará un error.

Imaginemos que en nuestro bucle while hemos definido un contador que iremos incrementando cada vez que leamos una fila de la base de datos y la almacenemos en el fichero; si hemos comprobado que en el elemento 200 se produce un error, podríamos incluir una condición del siguiente estilo: (cont == 200)

Dentro de la condición se puede utilizar cualquier variable que se encuentre definida dentro del ámbito en el que habéis colocado el breakpoint, de manera que la variable sea visible y accesible para esa zona del programa.

En este ejemplo hemos visto una condición de parada muy muy simple, con el objetivo de conocer los breakpoint condicionales y saber que existen y cómo se utilizan. Por supuesto la condición que pongáis puede (debe) ser mucho más elaborada pero siempre debe evaluarse como un booleano.

Cualquier duda, sugerencia, mejora, …. será siempre bien recibida 😉

Anuncios
One Comment leave one →
  1. Inquisidor permalink
    31 agosto 2012 20:40

    Gracias por el tema, interesante

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: