一、启动远程Target JVM(服务器启动服务参数配置)
假设我们要远程调试服务器程序 ServerMain(Main类),执行如下命令,启动远程Target JVM:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=6789 testR/ServerMain
参数说明:
transport:debugee与debuger调试时之间的通讯数据传输方式。 server:是否监听debuger的调试请求。 suspend:是否等待启动,也即设置是否在debuger调试链接建立后才启动debugee JVM。 address:debugee的地址,用于debuger建立调试链接(也可以配置为
ip:port)。
二、配置并启动本地attach debugger
配置调试本地服务器程序ServerMain的debugger:eclipse配置如下:
IntelliJ IDEA配置参考如下:
启动本地debugger的方式,和本地调试程序方式一样,可以在需要调试的地方打断点,当本地debugger运行到该断点时,会把远程Target JVM该部分的运行信息请求并打印出来,这样就达到了远程调试的目的。
配置完成后,调用服务器上的服务,会在本地的断点处体现。