軟件開發中很多時候我們需要遠程進行Debug調試,java 可以以調試模式啟動,啟動后可以使用 jdb 對程序進行調試。以調試模式啟動,需要加入以下參數:
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp
下面是這些參數的意思:
-XDebug               啟用調試。 
-Xnoagent             禁用默認sun.tools.debug調試器。 
-Djava.compiler=NONE  禁止 JIT 編譯器的加載。 
-Xrunjdwp             加載JDWP的JPDA參考執行實例。 
transport             用於在調試程序和 VM 使用的進程之間通訊。 
dt_socket             套接字傳輸。 
dt_shmem              共享內存傳輸,僅限於 Windows。 
server=y/n            VM 是否需要作為調試服務器執行。 
address=4000      調試服務器的端口號,客戶端用來連接服務器的端口號。 
suspend=y/n           是否在調試客戶端建立連接之后啟動 VM 
Tomcat的設置:
可以在對應tomcat實例CATALINA_BASE / bin下的setenv.sh文件中設置,如果沒有該文件先創建該腳本文件然后在其中設置jvm參數
export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
下面討論下spring-boot 對這方面的支持
spring-boot 從 1.3.0 添加了spring-boot-devtools 模塊
http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/
