IDEA线上排错神器之Remote JVM Debug(JVM远程Debug)

嗨,大家好啊!我是 jonsson。你是否为线上排查问题而苦恼,今天教你不发版的情况下进行线上 Debug。

第一步

首先我们新建一个最简单的 Spring Boot 项目,输出 12345 是为了方便我们调试

通过 Maven 进行打包,并上传至远程服务器,我这里使用的虚拟机

使用以下命令运行 jar

# JDK5-8
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remote-jvm-debug-0.0.1-SNAPSHOT.jar

以上参数可以在 IDEA 中找到,根据自己 JDK 的版本 copy 参数,本例使用的是 JDK8

参数说明:

  • transport: 监听 Socket 端口连接方式(也可以 dt_shmem 共享内存方式,但限于 Windows 机器,并且服务提供端和调试端只能位于同一台机)

  • server: =y 表示当前是调试服务端,=n 表示当前是调试客户端

  • suspend: =n 表示启动时不中断(如果启动时中断,一般用于调试启动不了的问题)

  • address: =5005 表示本地监听 5005 端口

注意

  1. 因为这里使用到5005,所以远程服务器如果开启防火墙需要放行5005端口

    Linux 查看防火墙状态: systemctl status firewalld

    Linux 暂时关闭防火墙: systemctl stop firewalld

  2. -agentlib:xxxx必须在 -jar 之前

jar 运行之后的效果如下

第二步

远程启动好 jar 后,在 idea 中配置远程 Debug,如图所示:

最后我们运行 Remote JVM Debug,并在程序中打一个断点

我们使用 Postman 请求接口后,此时就可以调试线上的程序了,需要注意的是,本地程序不需要运行,但是必须保证本地的代码和远程服务器上的代码是一致。

JVM 远程 Debug 可以帮助我们快速排查线上的 Bug。如果本文对你有帮助可以帮忙点免费的赞。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值