2008-12-05 14 views

Odpowiedz

12

Po uruchomieniu serwera w trybie debugowania, nasłuchuje na określonym porcie TCP. Eclipse łączy się z tym portem i rozmawia za pomocą protokołu Java Debug Wire Protocol (JDWP). Przeczytaj szczegóły tutaj: http://java.sun.com/j2se/1.5.0/docs/guide/jpda/

5

myślę, że nazywa JDWP (Java debugowanie drutu Protocol) - czytaj więcej here

0

Debugowanie Eclipse rozpoczyna się od tak zwanych agentów.

JVM, która uruchamia odpowiednie źródła .class, ma funkcję, która pozwala zewnętrznym bibliotekom (napisanym w Javie lub C++) być wstrzyknięte do JVM, tylko o środowisko uruchomieniowe. Te zewnętrzne biblioteki są określane mianem agentów i mają możliwość modyfikowania zawartości uruchomionych plików .class. Agenci ci mają dostęp do funkcjonalności JVM, która nie jest dostępna z poziomu zwykłego kodu Java działającego wewnątrz JVM i mogą być używane do wykonywania interesujących czynności, takich jak wstrzykiwanie i modyfikowanie działającego kodu źródłowego, profilowanie itp. Narzędzia takie jak JRebel korzystają z ten element funkcjonalności, aby osiągnąć swoją magię.

i przejść agenta lib JVM, to zrobić poprzez rozruchu argumentów, za pomocą

agentlib:libname[=options] format. 

Byliśmy faktycznie przechodząc nazwie JDWP agencie Lib dla JVM uruchomiony Tomcat. Jdwp jest specyficzną dla JVM, opcjonalną implementacją JDWP (Java Debug Wire Protocol) używaną do definiowania komunikacji między debuggerem a działającą maszyną JVM. Jest to implementacja, jeśli jest dostarczana jako natywna biblioteka JVM jako jdwp.so lub jdwp.dll

Co więc robi? Mówiąc najprościej, agent jdwp, który przekazujemy, pełni funkcję pośrednika łączącego instancję JVM z uruchomioną aplikacją i debuggerem (który może być zlokalizowany zdalnie lub lokalnie). Ponieważ jest to biblioteka agentów, ma zdolność przechwytywania uruchomionego kodu, tworzenia pomostu między maszyną JVM i debuggerem oraz ma funkcjonalność debuggera stosowaną w JVM. Ponieważ w architekturze JVM funkcja debugowania nie została znaleziona w samej JVM, ale jest odciągnięta do zewnętrznych narzędzi (które są trafnie określane jako debuggery), narzędzia te mogą znajdować się na komputerze lokalnym z uruchomioną maszyną JVM, która jest debugowana lub uruchomić z zewnętrznego komputera. Jest to ta odseparowana, modułowa architektura, która pozwala nam mieć maszynę JVM działającą na zdalnym komputerze i przy użyciu JDWP, zdalny debugger może się z nią komunikować.

Tak właśnie działa debugger Eclipse.

Powiązane problemy