2012-02-12 6 views
16

A veces, cuando examino un código que no escribí, lanzo eclipse en modo de depuración y uso las cifras para comprender un programa. Por ejemplo, si son n elementos recuperados de la base de datos, puede ser interesante saber que hay n elementos procesados ​​en un servicio, etc.Depuración y conteo de puntos de ruptura hits

Cuando se utilizan bucles, las cosas se vuelven más complicadas: si estamos en un ciclo "while", el número de ejecución no está definido y si hay alternativas, el flujo de ejecución puede cambiar en gran medida.

Para este propósito, a veces establezco un punto de interrupción en una parte del código y cuento cuántas veces lo alcanzamos.

Por supuesto, no es muy conveniente y me pregunto si hay una manera de contar la cantidad de éxitos. Sé que Eclipse puede suspender la ejecución después de un número fijo de visitas, pero solo quiero que Eclipse las cuente en un flujo normal de ejecución.

Estaría encantado de escuchar sus opiniones al respecto.

Gracias!

Respuesta

18

Puede agregar una condición en su punto de interrupción. La más simple podría ser algo como esto:

System.err.println("Passing checkpoint"); 
return false; 

También puede extenderlo llamando a su propia clase estática:

org.foo.StaticCounter.COUNTER++; 
System.err.println("Passing checkpoint " + org.foo.StaticCounter.COUNTER); 
return false; 
+0

Inteligente. Creo que siempre mantendré una clase StaticCounter en mi kit de herramientas. Puede ser útil para depurar códigos de procedimientos no objeto :) ¡Gracias! –

1

Como alternativa a los puntos de interrupción de recuento, se puede utilizar una herramienta de perfilado, tales como el uno here.

+0

Creo que su respuesta es correcta, pero cuento los éxitos de punto de ruptura. Me preocupa más comprender el procesamiento que analizar las actuaciones. Confirmo algunas intuiciones al evaluar cuántas veces deberíamos incluir un código. Sin embargo, lo uso para códigos de procedimientos complejos que no son objetos. Gracias por su respuesta de todos modos :) –

Cuestiones relacionadas