一. 背景:java
在測試工做中,爲方便發現代碼中的邏輯問題,嘗試使用遠程debug模式,在測試過程當中走查代碼,不只能夠輔助測試減小與開發的溝通成本,更便於瞭解業務提高測試深度。web
二. 配置方式:tomcat
1. 調試的配置方式主要爲設置JVM的參數,使之工做在debug模式下,經常使用參數爲:bash
-Xdebug -Xrunjdwp:transport=dt_socket,address=8012,server=y,suspend=n
2. 服務器端配置:服務器
若項目爲web項目,可在tomcat的啓動程序如catalina.sh中添加以下:app
若項目爲javaapp項目,可在項目的default文件中添加以下:socket
3. idea配置ide
打開idea中的run/debug configurations, 選擇remote類型,地址配置爲服務器地址,端口配置爲上述配置參數中的address,工具
4. 重啓項目,便可開啓遠程debug模式測試
三. 參數解釋:
1. JAVA支持調試功能,並提供了一個簡單的調試工具JDB,其可支持設置斷點及線程級的調試;
2. 各參數解釋:
-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的執行.
參考文檔:
http://calvinliu.iteye.com/blog/876009
http://ks.netease.com/blog?id=8113