基本原理
- 本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。
- 被调试程序的远程虚拟机:作为 Debug 服务端,监听 Debug 调试指令。jdwp是Java Debug Wire Protocol的缩写。
- 调试程序的本地虚拟机:IDEA 中配置的 Remote Server,指定 Debug 服务器的Host:Port,以供 Debug 客户端程序连接。
远程调试步骤
- IDEA配置启动环境(Debug服务器)
2.开启远程Debug服务
a.对于jar包服务
## 注意新参数必须在 -jar 之前java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test.jar
b.对于war包服务
启动脚本(catalina.sh)添加如下信息:
## sudo vim $CATALINA_HOME/bin/catalina.shJAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
注意
- 有时候调试时提示Connect time out,这时候需要关闭防火墙
- 只有本地和远程的代码保持一致才能进行远程调试