Normalmente, para adjuntar un depurador a un jvm en ejecución, necesitaría iniciar el jvm con argumentos como los siguientes:
> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
Ahora, si quiero depurar un proceso que no se inició en modo de depuración, ¿qué puedo hacer?
Esta situación surge cuando un sistema de producción (es decir, iniciado sin argumentos de depuración) muestra un error "aleatorio" (uso el término libremente). Entonces no puedo reiniciar el jvm con los argumentos apropiados, porque nadie sabe cómo reproducir el error nuevamente. ¿Es imposible conectarse a la JVM en esta situación?
Solo para aclarar, no es posible usar herramientas como jdb para adjuntar a JVM que ya se están ejecutando a menos que se hayan iniciado en modo de depuración
desde la página de manual de JVM
Otra forma de utilizar jdb es adjuntarlo a una máquina virtual Java que ya se esté ejecutando. Una máquina virtual que se va a depurar con jdb debe iniciarse con las siguientes opciones: