2008-12-05 168 views

回答

12

當你開始在調試模式下的服務器,它監聽指定的TCP端口上。 Eclipse連接到該端口,並使用Java調試有線協議(JDWP)進行交談。在此處閱讀詳細信息: http://java.sun.com/j2se/1.5.0/docs/guide/jpda/

5

我認爲它被稱爲JDWP(Java調試線協議) - 更多here

0

Eclipse調試從所謂的代理開始。

運行complies .class源代碼的JVM具有允許將外部庫(用Java或C++編寫)注入到JVM中的功能,僅僅是運行時。這些外部庫被稱爲代理,並且它們能夠修改已運行的.class文件的內容。這些代理可以訪問JVM的功能,這些功能無法從JVM中運行的常規Java代碼中訪問,並且可以用來執行有趣的內容,如注入和修改運行源代碼,分析等.JRebel等工具利用這塊功能實現了他們的魔力。

並通過代理庫到JVM,您通過啓動參數做到這一點,使用

agentlib:libname[=options] format. 

我們實際上通過一個代理庫命名JDWP到JVM運行Tomcat。 jdwp是用於定義調試器和正在運行的JVM之間通信的JDWP(Java調試線協議)的特定於JVM的可選實現。它的實現,如果存在提供作爲JVM的本地庫作爲jdwp.so或jdwp.dll

那麼它是做什麼的? 簡而言之,我們傳遞的jdwp代理基本上提供了作爲運行應用程序的JVM實例和調試器(可以位於遠程或本地)之間的鏈接的功能。由於它是一個代理程序庫,它具有攔截正在運行的代碼,在JVM和調試程序之間創建橋樑的能力,並且具有在JVM上應用調試程序的功能。 由於在JVM體系結構中,調試功能在JVM本身中沒有找到,但是被抽象爲外部工具(通常被稱爲調試器),這些工具可以駐留在運行被調試的JVM的本地機器上,或者從外部機器運行。正是這種分離的模塊化架構使我們能夠在遠程計算機上運行JVM並使用JDWP,讓遠程調試器能夠與其通信。

這就是Eclipse調試器如何工作的簡稱。

相關問題