idea java 远程调试_使用IDEA进行JAVA代码的远程Debug

在本地开发过程中,对代码进行Debug能逐行对代码逻辑进行调试,方便准备的排查问题。但是当代码发布到线上时,如果运行过程中出现异常,仅仅依靠日志来排查问题的话,会比较耗时,而且经常由于日志不全等原因而不能快速准确定位问题,而通过对JAVA代码进行远程Debug能很好的解决这个问题。

这篇博文主要介绍在IDEA中配置JAVA代码远程Debug,以及需要注意的事项。

我们知道,Java 程序是统一以字节码的形式运行在Java 虚拟机上的,因为都是字节码文件,所以只要本地代码和远程服务器上的类文件相同,两个JVM就可以通过调试协议进行通信。这里需要注意的是,被调试的服务器需要开启调试模式,服务器端的代码和本地代码必须保持一致,否则断点无法进入。

在IDEA中进行JAVA代码的远程Debug,需要做两步准备工作。

一、远程服务器端的JAVA代码开启调试模式。

项目类型:Spring Boot项目

JDK版本:1.8.0_131

项目启动命令:java -jar -Dspring.profiles.active=development -Xms1024m -Xmx1024m -Xmn600m -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001 -XX:-OmitStackTraceInFastThrow -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:log/gc.log smart-building.jar

其中开启远程debug的配置是:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4001

参数说明:

jdwp:java debug wire protocol

transport=dt_socket:以socket协议进行通信

server=y:开启调试服务端

address=4001:通信端口是4001

二、IDEA中的参数配置

1. 打开远程Debug参数配置窗口

cc59a29b92a458de8ad88c50e03a4675.png

2. 配置Debug参数,

Host表示远程服务端的IP地址。

Port表示跟远程服务端进行Debug通信的端口。

Command Line表示启动参数,注明开启远程Debug。

Use module classpath 表示远程服务对应的本地代码路径。

5dc30d892d234105ec01798bfecd32ac.png

3. 点击Debug图标,开始Debug

4047feb86b29fcf391ee7c945f7a2523.png

当在IDEA控制台输出这行日志,说明本地IDEA已连接上了远程服务的Debug端口,接下来可以跟调试本地代码一样,开始远程代码Debug。

9de55b10eed1063c2f445c21a35100b7.png

三、注意事项

当开启远程Debug后,任何能走到断点的操作都会导致业务阻塞到断点位置,从而影响业务流程的正常执行,所以最好选择没什么用户操作的时候进行远程Debug调试。

远程Debug调试过程中,结束调试不会导致远程业务流程终止,线上业务会继续执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值