¿Cómo usar el punto de interrupción condicional en Eclipse?

117

Quiero saber cómo colocar un punto de interrupción condicional en Eclipse. Tengo un código como:

public static void doForAllTabs(String[] tablist){
    for(int i = 0; i<tablist.length;i++){
-->        doIt(tablist[i]);
    }
}

Ahora quiero poner un punto de interrupción en la línea con la flecha, pero quiero que se active solo si:

tablist[i].equalsIgnoreCase("LEADDELEGATES");
MozenRath
fuente

Respuestas:

179

Pon tu punto de quiebre. Haga clic con el botón derecho en la imagen del punto de corte en el margen y elija Propiedades del punto de corte :

ingrese la descripción de la imagen aquí

Configure la condición como mejor le parezca:

ingrese la descripción de la imagen aquí

Maestro Zen
fuente
9
El último Eclipse también incluye estas opciones directamente en la Vista de puntos de interrupción.
Michael Brewer-Davis
1
¡Gracias amigo! me ahorré mucho tiempo! :)
MozenRath
8
¡Guauu! He estado usando: if(condition){System.out.println("debug");}y rompiendo la declaración impresa durante años.
Cruncher
5
No te olvides de OMITIR el ;al final. Recibí un error cuando lo incluí.
modulitos
¡Muchas gracias! Esto fue muy útil.
hfontanez
11

Hacer un punto de ruptura normal en la doIt(tablist[i]);línea

Haga clic derecho -> Propiedades

Marque 'Condicional'

Entrar tablist[i].equalsIgnoreCase("LEADDELEGATES")

Garrett Hall
fuente
¿No necesita un punto y coma al final de la expresión? Solo puedo hacer que los puntos de interrupción condicionales funcionen si agrego el punto y coma (y no muy a menudo incluso entonces).
Cajunluke
3
@CajunLuke Lo mismo aquí. Lo intenté con un final T[](tipo no genérico) y obtuve Conditional breakpoint has compilation error(s). Curiosamente, mi condición es bonds==nully la Razón en el diálogo de error es invalid AssignmentOperator. suspiro A veces, Eclipse se comporta más como un humano de 12 años que como un software de 12 años.
KomodoDave
3

De Eclipsepedia sobre cómo establecer un punto de interrupción condicional:

Primero, establezca un punto de interrupción en una ubicación determinada. Luego, use el menú contextual en el punto de interrupción en el margen izquierdo del editor o en la vista Puntos de interrupción en la perspectiva Depuración y seleccione las propiedades del punto de interrupción. En el cuadro de diálogo, marque Habilitar condición e ingrese una condición de Java arbitraria, como list.size()==0. Ahora, cada vez que se alcanza el punto de interrupción, la expresión se evalúa en el contexto de la ejecución del punto de interrupción, y el punto de interrupción se ignora o se respeta, según el resultado de la expresión.

Las condiciones también se pueden expresar en términos de otros atributos de puntos de interrupción, como el recuento de visitas.


fuente
Tu enlace no está ?codificado. Prueba esto .
KomodoDave
Gracias, lo agradezco
2

1. Crea una clase

public class Test {

 public static void main(String[] args) {
    // TODO Auto-generated method stub
     String s[] = {"app","amm","abb","akk","all"};
     doForAllTabs(s);

 }
 public static void doForAllTabs(String[] tablist){
     for(int i = 0; i<tablist.length;i++){
         System.out.println(tablist[i]);
    }
  }
}

2. Haga clic derecho en el lado izquierdo de System.out.println (lista de pestañas [i]); en Eclipse -> seleccione Toggle Breakpoint

3. Haga clic derecho en el punto de alternancia -> seleccione Propiedades del punto de interrupción

4. Marque la casilla de verificación condicional -> escriba la lista de pestañas [i] .equalsIgnoreCase ("amm") en el campo de texto -> haga clic en Aceptar

5. Haga clic derecho en clase -> Depurar como -> Aplicación Java

Prashant Sahoo
fuente