在項目中,會遇到一些問題,本地測試正確,測試環境測試也正確,但線上環境卻出現問題,因爲線上環境又缺乏一些必要的問題定位手段,這時能夠經過遠程調試來調試程序。但原則上,咱們仍是儘量經過業務邏輯、代碼分析、日誌定位來解決線上問題,遠程調試是一把雙刃劍,可能解決線上問題,但也可能致使線上出現新的問題。vim
本文以Tomcat7+eclipse+Centos6.5爲環境,描述如何進行遠程調試。tomcat
在catalina.sh中添加以下:服務器
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"eclipse |
參數說明以下:socket
-Xdebugtcp |
啓用調試模式測試 |
-Xrunjdwp<sub-options>spa |
加載JVM的JPDA參考實現庫debug |
transport=dt_socket調試 |
Socket鏈接,可選dt_shmem 經過共享內存的方式鏈接到調試服務器 |
address=8000 |
調試服務器監聽的端口 |
server=y |
是不是服務器端,n爲客戶端 |
suspend=n |
啓動過程是否加載暫停,y爲啓動時暫停,方便調試啓動過程 |
vim /etc/sysconfig/iptables 添加一行: -A INPUT -p tcp -m state --state NEW -m tcp --dport 8000 -j ACCEPT 而後重啓防火牆使其生效(開放的端口8000須要和tomcat中配置的8000一致) service iptables restart |
1) 打開debug
2) 設置debug
3) 執行debug
設置完畢後,點擊「Debug」按鈕,在代碼中打上斷點,程序運行到斷點後,就能夠看到效果,具體如圖:
點擊紅框內的按鈕,能夠取消遠程調試。