eclipse遠程調試Tomcat, Hadoop集羣等

主導是JPDA(Java Platform Debugger Architecture), 它支持java中的各種調試,由兩個接口(JVM Tool Interface和JDI)、一個協議(JDWP)和兩個用於合併它們的軟件組件(後端和前端)組成。參見http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/

JDWP(Java Debug Wire Protocol):JVM支持遠程調試,eclipse也支持JDWP,所以只要在各個模塊的JVM啓動時添加如下參數即可:

-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y

-Xdebug是在啓動調試

-Xrunjdwp是啓動JDWP調試的實現,後面的是對於JDWP的參數:

transport=dt_socket.JDWP front-end 和 back-end之間的傳輸方法。當前選項表示是使用socket傳輸。

address=8000. 監聽調試的端口

server=y. 表示當前啓動的是被調試的對象。n就是表示當前啓動的是調試對象。

suspend=y. 表示當前啓動的JVM會暫時等待,知道調試器連接上纔會繼續執行。這樣給對方以準備參與debug的時間。n就不會等待了。



Tomcat-------- 把tomcat的bin下的catalina.bat或則catalina.sh中的參數CATALINA_OPTS改爲上面的

Hadoop-------- 把hadoop的conf下的hadoop-env.sh裏的HADOOP_NAMENODE_OPTS改爲上面的

Hbase--------- 把hbase的conf下的HBASE_MASTER_OPTS。。。。


綜上一下,基本上這些遠程調試的改寫地方都是在啓動文件裏的**OPTS參數,或者就是一些configuration文件的property名爲OPTS的參數,這些文件的位置除了conf就是bin。至於eclipse這邊的配合,就是new一個remote debug configuration,寫上遠程IP和端口:


就ok了。記得要先啓動被調試的JVM,然後再去連接調試。因爲我們的suspend參數多數是y。(自己看着辦了)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章