Normalmente, para anexar um depurador a um jvm em execução, você precisa iniciar o jvm com argumentos como os seguintes:
> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
Agora, se eu quiser depurar um processo que não foi iniciado no modo de depuração, o que posso fazer?
Essa situação surge quando um sistema de produção (ou seja, iniciado sem argumentos de depuração) exibe um bug 'aleatório' (uso o termo vagamente). Portanto, não posso reiniciar o jvm com os argumentos apropriados, porque ninguém sabe como reproduzir o bug novamente. É impossível conectar ao JVM nesta situação?
Só para esclarecer, não é possível usar ferramentas como jdb para anexar a JVMs já em execução, a menos que tenham sido iniciadas no modo de depuração
da página de manual da JVM
Outra maneira de usar o jdb é anexá-lo a uma VM Java que já está em execução. Uma VM que deve ser depurada com jdb deve ser iniciada com as seguintes opções: