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的断点中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 服务器端 jar 包启动调试端口 5005 intellij idea新建 remote 启动配置远程启动后, ...
    A_1341阅读 424评论 0 0
  • 所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运...
    Pecksniff1994阅读 1,943评论 0 0
  • JAVA 支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过接口的...
    JarvisTH阅读 2,017评论 0 0
  • 1.前言 本文讲述如何使用IDEA远程调试spark,这里所说的调试spark包括: 调试spark应用程序,也就...
    达微阅读 1,192评论 1 4
  • 1.前言 本文讲述如何使用IDEA远程调试spark,这里所说的调试spark包括: 调试spark应用程序,也就...
    aaron1993阅读 11,916评论 1 9