2010-05-03 14 views
13

¿Hay algún mecanismo dentro del entorno de depuración de Eclipse para ver el estado de los bloqueos de sincronización retenidos y los procesos en espera?depuración Sincronización Java

+0

¿Está depurando un posible bloqueo muerto? – aioobe

+0

Encontré un punto muerto inesperado, pero tuve que "adivinar" que podría ser el caso del conjunto de procesos inexplicablemente estancados. Hay debería ser una mejor manera. – ddyer

Respuesta

13

puede mostrar el estado de los monitores de objeto en Depurador de Eclipse. Puedes find a short, clear tutorial here. Para cada hilo, Eclipse puede mostrarle los monitores que posee el hilo y los que está esperando.

+1

Gracias. No puedo imaginarme por qué la vista de monitores está apagada por defecto. – ddyer

+0

Es posible que esto solo funcione si está buscando un punto muerto causado por una instrucción sincronizada. Actualmente estoy buscando uno causado por un 'ReentrantReadWriteLock' y no recibo este tipo de eclipse de información. – Scheintod

1

Como sugirió here que podría (si ejecuta la JVM de Sun) realice los siguientes pasos:

  1. jconsole de lanzamiento o jvisualvm (ambos presentes en la papelera-directorio de su JDK-instalación,
  2. adjuntar al proceso sospecha que se ha bloqueado
  3. vaya al panel Temas. Hay un botón "Detectar punto muerto"
Cuestiones relacionadas