一. 背景:
在測試工作中,為方便發現代碼中的邏輯問題,嘗試使用遠程debug模式,在測試過程中走查代碼,不僅可以輔助測試減少與開發的溝通成本,更便於了解業務提升測試深度。
二. 配置方式:
1. 調試的配置方式主要為設置JVM的參數,使之工作在debug模式下,常用參數為:
-Xdebug -Xrunjdwp:transport=dt_socket,address=8012,server=y,suspend=n
2. 服務器端配置:
若項目為web項目,可在tomcat的啟動程序如catalina.sh中添加如下:

若項目為javaapp項目,可在項目的default文件中添加如下:

3. idea配置
打開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
