Мне очень нравятся удаленные средства отладки JVM. Но мне интересно, как это работает внутри.
Мое предположение: это выполняется с помощью функции JVM, в которой запущенный процесс загружает/использует исходный код от подключенного удаленного отладчика (например, IDE). Он знает строку текущей трассировки стека и затем может перейти к соответствующая точка останова IDE. Передача трассировки стека и интроспекция состояния приложения выполняется либо через сокеты, либо совместно используемую память (настройка удаленного отладчика).
Есть ли у кого-нибудь интересные ссылки/ресурсы?