Java remote debugging, how does it work technically?

I really like the remote debugging facilities of the JVM. But I wonder how it works internally.

My assumption: It is done through a JVM feature where the running process is downloading/using the source-code from the attached remote-debugger (like IDE) It knows the line of the current stack-trace and then can jump to the respective IDE breakpoint. The communication of stack-trace and introspection of the application state is then done either through sockets or shared-memory (setting of remote debugger).

Has anybody interesting links/resources on that?

62
задан Justin Ethier 28 August 2010 в 16:25
поделиться

2 ответа

Функции отладки JVM предоставляются через архитектуру отладчика платформы Java (JPDA).

Сам JPDA состоит из следующих элементов:

  • Java Virtual Machine Tool Interface (JVM TI) — собственный программный интерфейс для использования инструментов. Этот интерфейс позволяет контролировать состояние и помогает контролировать поток выполнения в отлаживаемой программе.
  • Java Debug Wire Protocol (JDWP) — используется для определения связи между отладчиком и отлаживаемым процессом.
  • Java Debug Interface (JDI) — этот интерфейс позволяет разработчикам инструментов писать удаленные отладочные приложения.

Диаграмма, приведенная в структуре архитектуры JPDA, является хорошей отправной точкой. Дополнительными местами для поиска могут быть руководства, перечисленные на странице JPDA.

46
ответ дан 24 November 2019 в 16:53
поделиться

Архитектура отладки Java называется JPDA. Возможно, вы захотите прочитать документацию JPDA. В частности, в разделе Watch-through приводится пример взаимодействия IDE с JDI для получения значения в стеке.

10
ответ дан 24 November 2019 в 16:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: