IDEA实现远程调试步骤详解

IDEA不仅可以本地调试代码,也可以远程调试代码。

一、基本原理

本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。 被调试程序的远程虚拟机:作为 Debug 服务端,监听 Debug 调试指令。jdwp是Java Debug Wire Protocol的缩写。 调试程序的本地虚拟机:IDEA 中配置的 Remote Server,指定 Debug 服务器的Host:Port,以供 Debug 客户端程序连接。

二、远程调试步骤

1、IDEA配置启动环境(Debug服务器),如图配置相应信息 2、开启远程Debug服务

1)对于jar包项目

命令行添加启动项,如下:

java "Command line arguments for remote JVM的值" -jar test.jar

注意新参数必须在 -jar 之前 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test.jar

2)对于war包项目

    方法1 进入服务器tomcat的catalina.sh文件,添加如下参数后启动tomcat
CATALINA_OPTS="Command line arguments for remote JVM的值"
    方法2 进入服务器端,ps -ef | grep tomcat查看运行参数 启动命令 = **/bin/java + idea内Command line arguments for remote JVM的值 +后续运行参数 启动tomcat即可

注:

  1. 远程debug的代码必须与远程部署的代码完全一致,不能发生任何的修改,否则打上的断点将无法命中。
  2. 这种方式是socket的方式去连远程tomcat的。你需要把端口对外开放。并且他是堵塞式的,同一时间只能支持一台客户端去调试
  3. 建议调试时尽快走过断点方法,以免阻塞生产环境的使用
  4. 有时候调试时提示Connect time out,这时候需要关闭防火墙
经验分享 程序员 微信小程序 职场和发展