2008-12-05 1 views

ответ

12

При запуске сервера в режиме отладки, он прослушивает указанный TCP-порт. Eclipse подключается к этому порту, и они разговаривают с использованием протокола Java Debug Wire Protocol (JDWP). Читайте подробности здесь: http://java.sun.com/j2se/1.5.0/docs/guide/jpda/

5

Я думаю, что это называется JDWP (Java Debugging Wire Protocol) - читать далее here

0

Отладка Eclipse начинается с так называемых агентов.

JVM, который запускает подчиненные источники .class, имеет функцию, которая позволяет вводить внешние библиотеки (написанные на Java или C++) в JVM, примерно во время выполнения. Эти внешние библиотеки называются агентами, и у них есть возможность изменять содержимое файлов .class. Эти агенты имеют доступ к функциям JVM, которые недоступны из обычного Java-кода, запущенного внутри JVM, и их можно использовать для создания интересных вещей, таких как инъекция и изменение исходного кода, профилирование и т. Д. Такие инструменты, как JRebel, используют эта часть функциональности для достижения своей магии.

И пройти агент Lib к JVM, вы делаете это с помощью Запускают аргументы, используя

agentlib:libname[=options] format. 

Мы были на самом деле пропускание агента Lib имя JDWP к JVM работает Tomcat. Jdwp представляет собой специфическую JVM, необязательную реализацию JDWP (Java Debug Wire Protocol), который используется для определения связи между отладчиком и запущенной JVM. Это реализация, если присутствует в качестве исходной библиотеки JVM как jdwp.so или jdwp.dll

Так что же это делает? Проще говоря, агент jdwp, который мы передаем, в основном служит функцией связи между экземпляром JVM, запускающим приложение, и отладчиком (который может быть расположен как удаленно, так и локально). Так как это библиотека агентов, у нее есть возможность перехватить запущенный код, создать мост между JVM и отладчиком и использовать функциональность отладчика, применяемого к JVM. Поскольку в JVM-архитектуре функциональность отладки не найдена в самой JVM, но отвлечена на внешние инструменты (которые точно называются отладчиками), эти инструменты могут либо находиться на локальном компьютере, на котором JVM отлаживается, либо бежать от внешней машины. Именно эта несвязанная модульная архитектура позволяет нам запускать JVM на удаленном компьютере и использовать JDWP, чтобы удаленный отладчик мог общаться с ним.

Вот как отладчик Eclipse работает коротким.

Смежные вопросы