IDEA 远程调试(Remote)

一、jar包远程调试

步骤0:打包,放到服务器上

步骤1:

步骤2:

步骤3

步骤4

下图注意的点有:红框选中的地方: host写 远程服务器的id地址,端口5005 不用改。蓝框选:你的项目名称(多个模块的项目会出现多个选项,选哪个都无所谓,我发现都能连接成功)

步骤5:配置服务器的项目启动方式

运行命令:

###原有的运行项目方式是:

java -jar XXX.jar

 

###现在在服务器上debug模式运行项目方式是:(针对jdk1.5-1.8的是该命令)

java --agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar XXX.jar

扩展:

临时使用指定的 项目启动环境

java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n -jar XXX.jar ---spring.profiles.active=test

临时使用指定 项目加载的配置文件

java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n -jar XXX.jar --spring-config.location=./aa.yml

参数说明:

transport: 指定运行的被调试应用和调试者之间的通信协议,它由几个可选值: dt_socket:主要的方式,采用socket方式连接。 dt_shmem:采用共享内存方式连接,仅支持 Windows 平台。

server: 指定当前应用作为调试服务端还是客户端,默认为n。 如果你想将当前应用作为被调试应用,设置该值为 y,如果你想将当前应用作为客户端,作为调试的发起者,设置该值为n。

suspend: 当前应用启动后,是否阻塞应用直到被连接,默认值为 y。 在大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。

address: 暴露的调试连接端口,默认值为 8000。 此端口一定不能与项目端口重复,且必须是服务器开放的端口。

onthrow: 当程序抛出设定异常时,中断调试。

onuncaught: 当程序抛出未捕获异常时,是否中断调试,默认值为 n。

launch: 当调试中断时,执行的程序。

timeout: 该参数限定为java -agentlib:jdwp=…可用,单位为毫秒ms。 当 suspend = y 时,该值表示等待连接的超时;当 suspend = n 时,该值表示连接后的使用超时。

参考命令:

1、-agentlib:jdwp=transport=dt_socket,server=y,address=8000:以 Socket 方式监听 8000 端口,程序启动阻塞(suspend 的默认值为 y)直到被连接。

2、-agentlib:jdwp=transport=dt_socket,server=y,address=localhost:8000,timeout=5000:以

Socket 方式监听 8000 端口,当程序启动后 5 秒无调试者连接的话终止,程序启动阻塞(suspend 的默认值为y)直到被连接。

3、-agentlib:jdwp=transport=dt_shmem,server=y,suspend=n:选择可用的共享内存连接地址并使用stdout 打印,程序启动不阻塞。

4、-agentlib:jdwp=transport=dt_socket,address=myhost:8000:以 socket 方式连接到 myhost:8000上的调试程序,在连接成功前启动阻塞。

5、-agentlib:jdwp=transport=dt_socket,server=y,address=8000,onthrow=java.io.IOException,launch=/usr/local/bin/debugstub:以Socket 方式监听 8000 端口,程序启动阻塞(suspend 的默认值为 y)直到被连接。当抛出 IOException时中断调试,转而执行 usr/local/bin/debugstub程序。

步骤6:启动服务器idea 的链接,就可以断点调试了

 链接成功,控制台会输出:

 

 

 

二、wartomcat部署远程调试

步骤1

tomcat 以debug 模式启动的 war 包,才能被 idea remote 连接
tomcat 版本号: 9.0.62
修改 D:\apache-tomcat-9.0.62\bin\startup.bat 文件

步骤2双击 D:\apache-tomcat-9.0.62\bin\startup.bat 运行

第一行显示 Listening for transport dt_socket at address: 8000,意味着成功 debug 模式 启动

步骤3监控端口设置的位置 (默认是8000)

D:\apache-tomcat-9.0.62\bin\catalina.bat

这个 address=%JPDA_ADDRESS% 的端口,就是idea remote 连接的端口

步骤4idea remote 配置

端口号:就是上文的 address 端口号

步骤5启动服务器idea 的链接,就可以断点调试了

 链接成功,控制台会输出:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值