温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用IDEA进行JAVA代码的远程Debug

发布时间:2020-06-08 18:11:10 来源:网络 阅读:2710 作者:lilugoodjob 栏目:软件技术

在本地开发过程中,对代码进行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参数配置窗口

使用IDEA进行JAVA代码的远程Debug

2. 配置Debug参数,

Host表示远程服务端的IP地址。
Port表示跟远程服务端进行Debug通信的端口。
Command Line表示启动参数,注明开启远程Debug。
Use module classpath 表示远程服务对应的本地代码路径。
使用IDEA进行JAVA代码的远程Debug

3. 点击Debug图标,开始Debug

使用IDEA进行JAVA代码的远程Debug

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

三、注意事项
  1. 当开启远程Debug后,任何能走到断点的操作都会导致业务阻塞到断点位置,从而影响业务流程的正常执行,所以最好选择没什么用户操作的时候进行远程Debug调试。
  2. 远程Debug调试过程中,结束调试不会导致远程业务流程终止,线上业务会继续执行。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI