使用想法进行JAVA代码的远程调试

  

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

  

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

  

在想法中进行JAVA代码的远程调试,需要做两步准备工作。

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

项目类型:春天引导项目
JDK版本:1.8.0_131
项目启动命令:java jar -Dspring.profiles。积极=发展-Xms1024m -Xmx1024m -Xmn600m -agentlib: jdwp=运输=dt_socket, server=y,暂停=n,地址=4001 - xx: -OmitStackTraceInFastThrow - xx: + UseG1GC - xx: G1ReservePercent=25 - xx: + HeapDumpOnOutOfMemoryError - xx: HeapDumpPath=日志- xx: + PrintGCDetails - xx: + PrintGCDateStamps -Xloggc:日志/gc。日志智能建筑。jar
其中开启远程调试的配置是:
<强> -agentlib: jdwp=运输=dt_socket, server=y,暂停=n,地址=4001
参数说明:
jdwp: java调试线协议
传输=dt_socket:以插座协议进行通信
服务器=y:开启调试服务端
地址=4001:通信端口是4001

  
二、想法中的参数配置h5> 1。打开远程调试参数配置窗口   

使用想法进行JAVA代码的远程调试

  <编辑> 2。配置调试参数,一直编辑   

主机表示远程服务端的IP地址。
港口表示跟远程服务端进行调试通信的端口。
命令行表示启动参数,注明开启远程调试。
使用模块类路径表示远程服务对应的本地代码路径。
使用想法进行JAVA代码的远程调试

  <编辑> 3。点击调试图标,开始调试   

使用想法进行JAVA代码的远程调试

  

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

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

使用想法进行JAVA代码的远程调试