有时候想调试线上的程序 可以启用远程调试功能 在本地调试远程代码。
远程JVM启用调试模式
/usr/local/jdk/bin/java -server -Xms256m -Xmx256m -XX:PermSize=64m -XX:MaxPermSize=128m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1506 -jar /home/web/api-1.0-SNAPSHOT/lib/api-1.0-SNAPSHOT.jar --spring.config.location=file:/home/web/api-1.0-SNAPSHOT/conf/ |
-XDebug
表示虚拟机启用调试功能-Xrunjdwp
加载JDWPtransport
调试程序JVM使用的进程之间通讯方式dt_socket
socket通讯server=y/n
JVM是否需要作为调试服务器执行address
调试服务器监听的端口号suspend=y/n
调试客户端建立连接之后启动虚拟机
JVM启动之后用验证监听的端口号是否生效了 netstat -anp | grep 1506
tcp 0 0 0.0.0.0:1506 0.0.0.0:* LISTEN 4841/java |
本地调试配置
然后debug
启动 访问远程服务器某个服务 在本地就支持打断点调试了。