Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации
 

Краткий обзор структуры

Архитектура Отладчика Платформы Java™ структурируется следующим образом:
           Components                          Debugger Interfaces

                /    |--------------|
               /     |     VM       |
 отлаживаемая программа ----(      |--------------|  <------- JVM TI - Java VM Tool Interface
               \     |   back-end   |
                \    |--------------|
                /           |
 comm channel -(            |  <--------------- JDWP - Java Debug Wire Protocol
                \           |
                     |--------------|
                     | front-end    |
                     |--------------|  <------- JDI - Java Debug Interface
                     |      UI      |
                     |--------------|

Какова Архитектура Отладчика Платформы Java (JPDA)?

JPDA является многоярусной архитектурой отладки, которая позволяет разработчикам инструментов легко создавать приложения отладчика, которые работают портативно через платформы, виртуальная машина (VM) версии JDK и реализации.

JPDA состоит из трех уровней:

TI JVM - Java Интерфейс Инструмента VM
TI JVM является новым интерфейсом, представленным в J2SE 5.0, который заменяет JVMDI. Это определяет услуги отладки, которые предоставляет VM.
JDWP - Протокол Провода Отладки Java
Определяет передачу между процессами отладчика и отлаживаемой программой.
JDI - Интерфейс Отладки Java
Определяет высокоуровневый интерфейс языка Java, который разработчики инструмента могут легко использовать, чтобы записать удаленные приложения отладчика.

Ссылочная реализация

В дополнение к спецификации этих интерфейсов Sun Microsystems также обеспечивает ссылочную реализацию, которая состоит из: Это обеспечивает многоуровневую реализацию, в которой можно заменить любым уровнем.

Используя JPDA

Разработчик отладчика может сцепиться в JPDA в любом уровне. Так как JDI является высшим уровнем и самый легкий использовать, мы поощряем разработчиков использовать этот интерфейс. Предположите, что компания разрабатывает отладчик, используя JDI. Они могут использовать это со ссылочной реализацией, и это будет автоматически работать с VMs и платформами, которые поддерживает Sun. Это может также работать, например, со ссылочным фронтэндом реализации и отлаживаемой программой, выполняющей VM другой компании, который реализует JDWP (который мог бы использовать или обойти TI JVM).

Некоторые отладчики создаются сверху нижних уровней, JDWP (например, если фронтэнд не пишется на языке Java), или TI JVM (для специализированных отладчиков, которые нуждаются в низкоуровневой функциональности).


Компоненты

отлаживаемая программа

Отлаживаемая программа является отлаживаемым процессом, это состоит из отлаживаемого приложения (не показанный), VM запускающий приложения и бэкэнда отладчика.

Виртуальная машина Java (VM)

Это отсылает к VM выполнение отлаживаемого приложения.

Архитектура отладчика разрабатывается для использования в широком спектре реализаций VM.

VM реализует Интерфейс Отладки виртуальной машины Java (TI JVM).

бэкэнд

Бэкэнд отладчика ответственен за передачу запросов от фронтэнда отладчика до отлаживаемой программы VM и для того, чтобы передать ответ на эти запросы (включая требуемые события) к фронтэнду. Бэкэнд связывается с фронтэндом по коммуникационному каналу, используя Протокол Провода Отладки Java (JDWP). Бэкэнд передает с отлаживаемой программой VM использование Интерфейса Отладки виртуальной машины Java (TI JVM).

Это является четким от опыта, что код поддержки для отладочных средств, работая на отлаживаемой программе и записанный в Java, спорит с отлаживаемой программой способами, которыми причина зависает и другое нежелательное поведение. Таким образом бэкэнд является собственным кодом. Это, поочередно, подразумевает, что TI JVM является чистым собственным интерфейсом.

коммуникационный канал

Коммуникационный канал является ссылкой между фронтэндами и бэкэндами отладчика. Это может считаться состоящий из двух механизмов:

  1. Соединитель. Соединитель является объектом JDI, который является средствами, которыми соединение устанавливается между передней стороной и бэкэндами.

    JPDA определяет три типа соединителей:

  2. Транспорт. Транспорт является базовым механизмом, используемым, чтобы переместить биты между фронтэндом и бэкэндом.

    Транспортный используемый механизм является неуказанным; возможные механизмы включают: сокеты, последовательные строки, и совместно используемая память. Однако, формат и семантика сериализированного потока битов, текущего по каналу, определяются Протоколом Провода Отладки Java (JDWP).
Запускаясь с J2SE 5.0, JPDA включает интерфейсы поставщика услуг, чтобы позволить разработку и развертывание соединителя и транспортные реализации. Эти интерфейсы поставщика услуг позволяют отладчику и другим поставщикам инструмента разрабатывать новые реализации соединителя и обеспечивать дополнительные транспортные механизмы и вне сокета и транспорта совместно используемой памяти, обеспеченного Sun. Интерфейсы поставщика услуг в JDI определяются в com.sun.jdi.connect.spi пакете.

В дополнение к интерфейсам поставщика услуг в JDI JPDA также определяет транспортный интерфейс библиотеки, названный Транспортным Интерфейсом Протокола Провода Отладки Java™. Транспортная библиотека загружается агентом JDWP в целевом VM и пользуется, чтобы установить соединение с отладчиком и транспортировать пакеты JDWP между отладчиком и VM.

См. Архитектуру Отладчика Платформы Java™ - Интерфейсы Поставщика услуг для получения дополнительной информации об использовании этих SPI.

фронтэнд

Фронтэнд отладчика реализует высокоуровневый Интерфейс Отладки Java (JDI). Фронтэнд использует информацию из низкоуровневого Протокола Провода Отладки Java (JDWP).

Пользовательский интерфейс (UI)

Пользовательский интерфейс к отладчику не определяется; намерение состоит в том, что поставщики инструмента обеспечат значение добавленные реализации. Мы обеспечиваем пример простой графический интерфейс пользователя (GUI), который служит тестовым ремнем безопасности и как начальной точкой для разработки более сложных GUI. Версия JDB также доступна как пример.

Примером UIs являются клиенты Интерфейса Отладки Java (JDI).

 

Интерфейсы отладчика

Интерфейс Инструмента Виртуальной машины Java (TI JVM)

Собственный интерфейс реализуется VM.

Определяет службы, VM должен предусмотреть отладку. Включает запросы на информацию (например, текущий стековый фрейм), действия (например, установите точку останова), и уведомление (например, когда точка останова была поражена). Отладчик может использовать информацию VM кроме этого (например, Java Собственный Интерфейс (JNI)), но это - источник всего отладчика определенная информация.

Определение Интерфейса VM позволяет любому конструктору VM включаться легко в архитектуру отладки. Это также позволяет альтернативные реализации канала связи. Реализации VM, которые не придерживаются этого интерфейса, могут все еще обеспечить доступ через Протокол Провода Отладки Java (JDWP).

См. также:

Спецификация TI JVM
 

Протокол Провода Отладки Java (JDWP)

Определяет формат информации и запрашивает переданный между процессом отлаживаемой программы и фронтэндом отладчика. Это не определяет транспортный механизм (сокет, последовательная строка, совместно используемая память...).

Спецификация протокола позволяет отлаживаемой программе и фронтэнду отладчика работать при отдельных реализациях VM и/или на отдельных платформах. Это также позволяет фронтэнду быть записанным на языке кроме Java, или отлаживаемой программе, чтобы быть несобственным (например, Java).

Информация и запросы примерно на уровне Интерфейса Отладки виртуальной машины Java (TI JVM), но будут включать дополнительную информацию и запросы, требуемые проблемами пропускной способности, примеры включают информационную фильтрацию и пакетную обработку.

См. также:

Спецификация JDWP
Транспортная Спецификация JDWP
 

Интерфейс Отладки Java (JDI)

100%-ый интерфейс Java реализуется фронтэндом.

Определяет информацию и запросы на пользовательском уровне кода.

В то время как конструкторы отладчика могли непосредственно использовать Протокол Провода Отладки Java (JDWP) или Интерфейс Отладки виртуальной машины Java (TI JVM), этот интерфейс значительно облегчает интеграцию отладки возможностей в среды разработки. Мы рекомендуем уровень JDI для всей разработки отладчика.

См. также:

Спецификация JDI


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами