Idea之Java代码Remote JVM Debug

Idea之Java代码Remote JVM Debug

1、适用场景

​ 在公司中,java代码开发完成之后,一般都会部署到linux服务器上,以供公司客户进行使用。但是作为开发人员,尤其是一名新员工,了解公司产品源代码中的业务逻辑算的上是最重要的,代码量一般都是数万行,此时就需要进行Debug调试。由于公司产品环境搭建相当复杂,并且公司得前端页面直接绑定的也是远程服务器,此时就需要Remote JVM Debug来进行远程调试,来帮助我们理解代码。

2、具体步骤

(1)首先是要在jar启动上加入如下参数。-agentlib:jdwq代表启动了远程调试功能。

  • transport=dt_socket:指定使用套接字传输方式进行调试。
  • server=y:将 JVM 设置为调试服务器模式,等待调试器连接。
  • suspend=n:在启动时不要暂停 JVM,即不等待调试器连接。
  • address=0.0.0.0:40001:指定调试器连接的地址和端口。在这个例子中,JVM 将监听所有网络接口上的 40001 端口。
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:40001

(2)本地操作首先是idea中配置远程debug连接,如下图所示。需要设置你的服务器地址以及端口号即可。

Snipaste_2023-08-12_15-42-15 Snipaste_2023-08-12_15-47-05

(3)本地代码上设置断点。本地调试器设置的断点实际上是对远程 JVM 的断点请求。当远程 JVM 运行到设置的断点位置时,它会通过与远程调试器建立的连接通知远程调试器,并由远程调试器将此消息传递给本地调试器。本地调试器收到断点触发的通知后,就会进入本地调试模式,允许你在本地进行调试操作。在本地代码上设置断点,切记一定要设置上断点的条件,即右击断点进行设置。条件断点,顾名思义就是只有满足此条件的请求,才会被进行拦截,进入debug,断点条件最好设置成唯一ID。如果未设置断点条件,那么就会拦截所有请求,直接影响到服务器为其他客户提供请求服务。

(4)发送请求,然后进入本机开始debug。

兄弟萌,累了休息一下也无妨。人生本来就是走走停停,只要一直在路上就好!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值