Hola, generalmente para debuggear en eclipse, con el debugger y un breakpoint nos alcanza, pero algunas veces sucede que tenemos que entrar en un ciclo y debugear justo cuando el numero de la iteracion es X, siendo ese X un numero diferente al inicial, entonces recurrimos a escribir código.
Por ejemplo:
En nuestro ejemplo cuando i = 9000, recién ahí verificamos que pasa el código.
El mayor problema al hacer esto es básicamente que tenemos que editar código, lo cual al momento de subirlo a producción tenemos que acordarnos de modificar el código.
Tenemos que bajar la aplicación y re compilar todo de nuevo, osea impactar el nuevo código.
Una solución muy sencilla que nos provee el eclipse es el debugger condicional.
Pasos a seguir:
1. Poner el punto de corte. El famoso breakpoint, si no te acordas como hacerlo podes pasarte por
acá.
2. Sobre el breakpoint hacemos un clic con el botón derecho, luego aparecerá un menú como el siguiente y finalmente presionamos sobre Breakpoint Properties.
3) Aparecerá una ventana como la siguiente:
Tildamos Enabled y Conditional.
4) La parte de abajo de la ventana nos permite escribir la condición. Ej:
5) Finalmente presionamos OK, y luego corremos el programa en modo debug! Y Wala!
El debugger se detiene en nuestra linea deseada.
NOTA:
A) La condición a evaluar debe retornar un booleando, no hace falta poner el bloque if, la condición puede ser compleja usando los operadores && y ||.
B) Se puede utilizar auto-completar la condición con Control + Barra (En la caja de texto).
C) Si el flujo normal de la propiedad a evaluar puede ser nula, acordate de checkearla para evitar errores, por ejemplo K!=null && K.equal("nombre") .
Cantidad de Vueltas.
Si quieres parar por la cantidad de vueltas (cantidad de veces que se pasar por donde se pone el punto de corte), dentro de las propiedades se puede seleciontar Hit Count e ingresar un numero.
Si se utiliza Conditional y Hit Cound, solo se entrara en el punto de debuger si se dan las dos condiciones juntas, es decir si son true ambas.
Value of Condition changes
Si quieres que solo se detenga cuando un valor o una expresión a cambiado selecciona: value of condition changes.
En este caso la condición no evalúa el resultado de manera booleana. Puedes evaluar una sola condición una expresión.
Los Breakpoint condicionales es solo código JAVA.
Los Breakpoint condicionales es solo código JAVA, por ejemplo con el alcance de restricciones y la posibilidad de errores de compilacion/runtime. El alcance de la condición es el mismo que el los lugares donde se pone el breakpoing. así que podemos acceder a variables métodos que son accesibles desde el lugar del breakpoing.
Saludos!
Fuente
Por ejemplo:
En nuestro ejemplo cuando i = 9000, recién ahí verificamos que pasa el código.
El mayor problema al hacer esto es básicamente que tenemos que editar código, lo cual al momento de subirlo a producción tenemos que acordarnos de modificar el código.
Tenemos que bajar la aplicación y re compilar todo de nuevo, osea impactar el nuevo código.
Una solución muy sencilla que nos provee el eclipse es el debugger condicional.
Pasos a seguir:
1. Poner el punto de corte. El famoso breakpoint, si no te acordas como hacerlo podes pasarte por
acá.
2. Sobre el breakpoint hacemos un clic con el botón derecho, luego aparecerá un menú como el siguiente y finalmente presionamos sobre Breakpoint Properties.
3) Aparecerá una ventana como la siguiente:
Tildamos Enabled y Conditional.
4) La parte de abajo de la ventana nos permite escribir la condición. Ej:
5) Finalmente presionamos OK, y luego corremos el programa en modo debug! Y Wala!
El debugger se detiene en nuestra linea deseada.
NOTA:
A) La condición a evaluar debe retornar un booleando, no hace falta poner el bloque if, la condición puede ser compleja usando los operadores && y ||.
B) Se puede utilizar auto-completar la condición con Control + Barra (En la caja de texto).
C) Si el flujo normal de la propiedad a evaluar puede ser nula, acordate de checkearla para evitar errores, por ejemplo K!=null && K.equal("nombre") .
Cantidad de Vueltas.
Si quieres parar por la cantidad de vueltas (cantidad de veces que se pasar por donde se pone el punto de corte), dentro de las propiedades se puede seleciontar Hit Count e ingresar un numero.
Si se utiliza Conditional y Hit Cound, solo se entrara en el punto de debuger si se dan las dos condiciones juntas, es decir si son true ambas.
Value of Condition changes
Si quieres que solo se detenga cuando un valor o una expresión a cambiado selecciona: value of condition changes.
En este caso la condición no evalúa el resultado de manera booleana. Puedes evaluar una sola condición una expresión.
Los Breakpoint condicionales es solo código JAVA.
Los Breakpoint condicionales es solo código JAVA, por ejemplo con el alcance de restricciones y la posibilidad de errores de compilacion/runtime. El alcance de la condición es el mismo que el los lugares donde se pone el breakpoing. así que podemos acceder a variables métodos que son accesibles desde el lugar del breakpoing.
Saludos!
Fuente
Eclipse - Debugger Condicional - BreakPoint Condicional
Reviewed by El lado oscuro de java
on
noviembre 04, 2013
Rating:
Nice Examle
ResponderEliminar