Pregunta

Estoy lanzando una aplicación Weblogic dentro de Eclipse a través del entorno de ejecución BEA Weblogic Server v9.2. Si esto se ejecutara directamente desde la línea de comandos, haría un ctrl-BREAK para forzar un volcado de hilo. ¿Hay alguna manera de hacerlo en Eclipse?

¿Fue útil?

Solución

De hecho (gracias a VonC por señalar el hilo SO), Dustin, en un comentario a su mensaje, señala a jstack .

He ejecutado una pequeña aplicación Java (con GUI) en Eclipse, puedo ver el javaw.exe relacionado en el administrador de procesos de Windows y su PID, 7088 (es incluso más sencillo en Unix, por supuesto).

Si escribo en un indicador de comando jstack 7088 , tengo el volcado de pila deseado por subproceso.
Genial.

Sería mejor si pudiéramos hacer eso directamente desde Eclipse, pero eso ya es útil tal como está.

Otros consejos

Puede hacerlo cuando está en modo de depuración: vaya a la vista de depuración en la perspectiva de depuración, haga clic en el proceso que ha iniciado y haga clic en pausa, obtendrá una pila gráfica de todos sus procesos.

Nota: esto también funciona cuando se usa la depuración remota, no es necesario que inicie weblogic desde eclipse, puede iniciarlo por su cuenta, abrir los puertos de depuración y crear una configuración de depuración de la aplicación java remota " " por ello.

Wiki de Eclipse: Cómo informar un interbloqueo enumera todas las opciones posibles de crear un volcado de hilos en Eclipse . Dependiendo de la situación concreta, uno u otro puede funcionar mejor: mi favorito personal en Windows es la herramienta Adaptj Stacktrace.

StackTrace es otra opción que puedes probar. De las características:

  

Volcado de subprocesos para procesos Java en ejecución   como un servicio de Windows (como Tomcat, por   ejemplo), comenzó con javaw.exe ,   applets corriendo dentro de cualquier navegador o   JVMs incrustadas dentro de otro proceso.   StackTrace funciona en Windows, Linux y   Mac OS X.

si prefiere una solución basada en UI, visualvm puede ser una buena opción. (su ventaja es que también se distribuye con JDK)

Para tomar el volcado de hilo en visualvm:

  1. conectarse al proceso (remoto o local) y
  2. vaya a Threads (tab) - > Thread Dump (botón)

¿Intentaste iniciar tu eclipse con java.exe en lugar de javaw.exe (en tu eclipse.ini )?

Eso podría darle la consola que necesita, como se describe en este error y en este mensaje .

Otras ideas (en términos de opciones de java) podrían derivarse de esto otra pregunta SO .

Puede conectarse a través de VisualVM y obtener un volcado de subprocesos. Simplemente haga clic con el botón derecho en el nodo de la aplicación en el árbol de aplicaciones y seleccione " Volcado de subprocesos "

En Linux, al menos puedes hacer un ps -ef | grep java para obtener el PID y luego hacer un kill -3 PID y lo enviará a la consola de Eclipse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top