Обычно для присоединения отладчика к работающему jvm вам необходимо запустить jvm с такими аргументами, как:
> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
Теперь, если я хочу отладить процесс, который не был запущен в режиме отладки, что я могу сделать?
Эта ситуация возникает, когда производственная система (т. Е. Запущенная без аргументов отладки) обнаруживает «случайную» (я использую термин вольно) ошибку. Поэтому я не могу перезапустить jvm с соответствующими аргументами, потому что никто не знает, как снова воспроизвести ошибку. Разве в этой ситуации невозможно подключиться к JVM?
Просто чтобы уточнить, нельзя использовать такие инструменты, как jdb, для подключения к уже запущенным JVM, если они не были запущены в режиме отладки.
со страницы руководства JVM
Другой способ использовать jdb - подключить его к уже запущенной виртуальной машине Java. Виртуальная машина, которая должна быть отлажена с помощью jdb, должна быть запущена со следующими параметрами: