idea 使用远程debug,调试线上程序
线上开启debug模式
RemoteDebug过程是在两个不同的VM实例间进行,需要一个通信方式——socket,因此需要端口设置。
要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数:
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port}
其中${debug_port}是用户自定义的,为服务端debug端口。
JVM_ARGS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8080,suspend=n "
参数说明:
-XDebug 启用调试
-Xrunjdwp 加载JDWP的JPDA参考执行实例。
transport 用于在调试程序和 VM 使用的进程之间通讯。
dt_socket 套接字传输。
server=y/n VM是否需要作为调试服务器执行。
address=8080调试服务器监听的端口号。
suspend=y/n 是否在调试客户端建立连接之后启动 VM 。
本地idea配置
通过本地设置,连接远程服务端口
"+"→Remote(Name、Host、Port)→Apply
Host为远程代码运行的机器ip
Port为上步设置的服务端debug端口号