2009-12-30 19 views

Respuesta

14

Conseguir pila de llamadas

1) Si es posible depuración la aplicación simplemente poner un punto de interrupción (haciendo doble clic sobre el margen izquierdo del código) y esperar a que se detenga. Vaya a Debug Perspective si no está allí, y abra la vista/panel de la pila de llamadas. Tiene la pila de llamadas :)

2) Si desea imprimir esta seguimiento de la pila utilizar alguna parte una excepción:

Exception aux = new Exception("I'm here"); // not for throwing! 
aux.printStackTrace(); // if you want it in stdout 

o

Exception aux = new Exception("I'm here"); // not for throwing! 
StringWriter sw = new StringWriter(); 
aux.printStackTrace(new PrintWriter(sw)); 
String result = sw.toString(); // if you want it in a string 

método de obtención hace referencia a

Puede obtener todas las referencias a un método haciendo clic derecho, Referencias, Espacio de trabajo. Buscará todos los llamamientos en sus proyectos abiertos actuales. Muy muy útil.

perfilar una aplicación

(gracias a los que habían respondido a la opción de perfiles)

Eclipse TPTP ofrece perfiles:

http://www.eclipse.org/tptp/home/project_info/general/whatisTPTP.php

+2

También hay un 'Thread # dumpStack()' que se prefiere sobre 'new Exception()'. – BalusC

+0

Gracias chicos. Utilicé TPTP que no está mal para mis propósitos. – Guy

3

El uso del Eclipse Profiler puede proporcionarle lo que desea.

+0

Ese proyecto es reemplazado por Eclipse TPTP. Agregaré su enlace a mi respuesta (pero voy a hacer +1 al suyo) – helios

2

Rápido y sucio, cree una nueva excepción e imprima stacktrace.

Exception e = new Exception(); 
e.printStackTrace(); 
+0

Creo que está buscando visualizar los datos, no solo obtener el seguimiento de la pila. –

+0

@Kristopher Entonces es un depurador que realmente necesita. – HeDinges

1

Uso el Eclipse Profiler a veces.

4

Netbeans profiler es muy bueno para esto !!

Las funciones de perfiles incluyen CPU, memoria y hilos de perfiles, así como el seguimiento básica JVM ...

También puede utilizar comandos jconsole (parte del JDK)

Se inicia una herramienta de consola gráfica que le permite supervisar y administrar aplicaciones Java y máquinas virtuales en una máquina local o remota.

1

Thread.dumpStack() le permite generar la pila de llamadas actual sin lanzar una excepción o usar un depurador. Esto se enviará a la consola.

Puede poner una llamada a dumpStack() en "puntos de acceso" de su código para obtener la pila de llamadas que la aplicación tomó para llegar a ese punto.

7

Tuve exactamente el mismo problema, así que escribí el conjunto de herramientas java-callgraph. Utilizándolo, puede crear gráficos de llamada dinámicos (en tiempo de ejecución) y gráficos de llamada estáticos, siempre que tenga los archivos jar del programa y de sus dependencias.

2

No se puede obtener un gráfico de todo el código en eclipse. Sin embargo, puede obtener una vista en árbol de las personas que llaman o llaman a un método.

En el código fuente, haga clic derecho en el nombre de un método de interés, por ejemplo main (String [] args), a continuación, haga clic en Abrir Jerarquía de llamada. (Ctrl + Alt + H en Windows)

Esto abrirá una vista en árbol de la jerarquía de llamantes (Jerarquía de llamantes). Hay una opción para ver la Jerarquía de Callee.

Para copiar un archivo de texto, haga clic con en un nodo de la llamada vista de estructura jerárquica y haga clic en jerarquía de la copia ampliada.

inconvenientes:

  • expansión de todos los nodos del árbol debe ampliarse hecho de forma manual (Shift + Flecha derecha pulse repetidamente en Windows)
  • si no es obvio punto de partida para el código, usted tiene que hacer esto para cada método
Cuestiones relacionadas