Недавно я столкнулся с вопросом: отладка Java-приложения без запуска JVM с аргументами отладки.
Читая больше о различных соединителях и транспортных средствах, предлагаемых JVM по адресу https://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html, я сейчас пытаюсь найти ответы на следующие вопросы:
Документы говорят, что для SADebugServerAttachingConnector и SAPIDAttachingConnector:
Отлаживаемый процесс не нужно запускать в режиме отладки (т.е. С -agentlib: jdwp или -Xrunjdwp)
Так:
1) Почему параметры отладки, такие как Xrunjdwp
существуют в первую очередь?
2) Как работает SADebugServerAttachingConnector, не принимая номер порта в аргументах?
3) В документации ничего не сказано о требовании root-прав. Разве это не серьезная уязвимость повышения привилегий, позволяющая произвольной отладке экземпляров jvm, не запущенных в режиме отладки, непривилегированными пользователями?