-Xdebug 啓動命令

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

JAVA的調試方法以下: 1。首先支持JVM,並設置參數,使之工做在DEBUG模式下,加入參數:-Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,suspend=n,onthrow=java.io.IOException,launch=/sbin/echo 其中,-Xdebug是通知JVM工做在DEBUG模式下,-Xrunjdwp是通知JVM使用(java debug wire protocol)來運行調試環境。該參數同時了一系列的調試選項: transport指定了調試數據的傳送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享內存方式,其中,dt_shmem只適用於Windows平臺。 server參數是指是否支持在server模式的VM中. onthrow指明,當產生該類型的Exception時,JVM就會中斷下來,進行調式。該參數可選。 launch指明,當JVM被中斷下來時,執行的可執行程序。該參數可選 suspend指明,是否在調試客戶端創建起來後,再執行JVM。 onuncaught(=y或n)指明出現uncaught exception 後,是否中斷JVM的執行. 虛擬機參數設置   1.啓用調試服務     -Xdebug 啓用調試     -Xrunjdwp: 加載JVM的JPDA參考實現庫   2.Xrunjdwp子參數(sub-options)配置     Xrunjdwp子參數的配置格式以下     -Xrunjdwp:[=],[=]...java

幾個例子   -Xrunjdwp:transport=dt_socket,server=y,address=8000   在8000端口監聽Socket鏈接,掛起VM而且不加載運行主函數直到調試請求到達   -Xrunjdwp:transport=dt_shmem,server=y,suspend=n   選擇一個可用的共享內存(由於沒有指address)並監聽該內存鏈接,同時加載運行主函數   -Xrunjdwp:transport=dt_socket,address=myhost:8000   鏈接到myhost:8000提供的調試服務(server=n,以調試客戶端存在),掛起VM而且不加載運行主函數   -Xrunjdwp:transport=dt_shmem,address=mysharedmemory   經過共享內存的方式鏈接到調試服務,掛起VM而且不加載運行主函數   -Xrunjdwp:transport=dt_socket,server=y,address=8000,   onthrow=java.io.IOException,launch=/usr/local/bin/debugstub   等待java.io.IOException被拋出,而後掛起VM並監聽8000端口鏈接,在接到調試請求後以命令/usr/local/bin/debugstub dt_socket myhost:8000執行   -Xrunjdwp:transport=dt_shmem,server=y,onuncaught=y,launch=d:\bin\debugstub.exe   等待一個RuntimeException被拋出,而後掛起VM並監聽一個可用的共享內存,在接到調試請求後以命令d:\bin\debugstub.exe dt_shmem 服務器

執行,
是可用的共享內存

2。啓動調試工具。 最簡單的調試工具就是上面提到的JDB,以上述調試用JVM爲例,能夠用下面的命運行啓動JDB: jdb -connect com.sun.jdi.SocketAttach:port=5432,hostname=192.168.11.213 另外,還有好多的可視化調試工具,如 eclipse,jsawt等等。Eclipses可用 ant debug來創建一個調試方法。eclipse

其實就是使用了JDK的JPDA,在啓動服務器(Jboss或者Tomcat等)的命令行參數裏面加上: -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=nsocket

Java遠程調試 -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=n -XDebug 啓用調試。 -Xnoagent 禁用默認sun.tools.debug調試器。 -Djava.compiler=NONE 禁止 JIT 編譯器的加載。 -Xrunjdwp 加載JDWP的JPDA參考執行實例。 transport 用於在調試程序和 VM 使用的進程之間通信。 dt_socket 套接字傳輸。 dt_shmem 共享內存傳輸,僅限於 Windows。 server=y/n VM 是否須要做爲調試服務器執行。 address=3999 調試服務器的端口號,客戶端用來鏈接服務器的端口號。 suspend=y/n 是否在調試客戶端創建鏈接以後啓動 VM 。 Resin: RESIN_HOME\bin\httpd.exe -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n Tomcat: 在catalina.sh/bat 的最上面加上:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 便可。 Weblogic: 在startWebLogic.bat加上:set JAVA_OPTIONS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005函數

轉載自: 簡書 - 低至一折起工具

文章:www.jianshu.com/p/a1a6cd1f1…命令行

相關文章
相關標籤/搜索