일반적으로 실행중인 jvm에 디버 커를 연결하려면 다음과 같은 인수로 jvm을 시작해야합니다.
> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
이제 디버그 모드에서 시작되지 않은 프로세스를 디버깅하려면 어떻게해야합니까?
이 상황은 프로덕션 시스템 (즉, 디버그 인수없이 시작됨)이 '무작위'(저는 용어를 느슨하게 사용함) 버그를 나타낼 때 발생합니다. 따라서 아무도 버그를 다시 재현하는 방법을 모르기 때문에 적절한 인수로 jvm을 다시 시작할 수 없습니다. 이 상황에서 JVM에 연결할 수 없습니까?
디버그 모드에서 시작되지 않는 한 jdb와 같은 도구를 사용하여 이미 실행중인 JVM에 연결할 수 없음을 명확히하기 위해
JVM man 페이지에서
jdb를 사용하는 또 다른 방법은 이미 실행중인 Java VM에 연결하는 것입니다. jdb로 디버깅 할 VM은 다음 옵션을 사용하여 시작해야합니다.