idea中远程debug调试

远程debug调试原理

在本地远程调试服务器端的代码原理:本地和服务器端建立一个socket连接监听,当客户端访问服务器的时候,服务器端会先去问本地idea有没有断点,如果有会停在当前断点,如果没有就返回给客户端。
缺点:1.服务器端需要开启debug运行,在生产环境debug会影响性能。实际使用场景有限。

1.本地端配置

在本地idea的工程中添加Edit configuration配置

Edit configuration配置

Edit configuration配置1

Edit configuration配置2

在配置2中需要将jvm的参数-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005给复制下来,在服务器端配置时候使用。

2.服务器端配置

首先在服务器端配置放开5005端口(阿里云或腾讯云服务器需要在安全组中放5005端口)
在服务器端我使用的是springboot直接打包的demo工程。在命令行中直接使用如下命令运行

java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar .\demo-0.0.1-SNAPSHOT.jar

运行成功后会提示


5005端口

表明服务器端已经启动成功,开启5005端口的监听。

3.实际调试

我们回到本地调试端,在第一步的图片配置2中我配置的remote名字是remoteTest,我们在本地idea中选择remoteTest然后运行工程。


remoteTest

运行后如果没有报错,则本地控制台会有如下提示

Connected to the target VM, address: 'ip:5005', transport: 'socket'

然后我们在本地工程中打上断点,客户端请求服务器后会发现已经进入了本地idea的断点中。

你可能感兴趣的:(idea中远程debug调试)