Idea远程调试 (包含调试docker容器)

本文介绍了Java远程调试的原理,强调了调试本质是通过通信协议实现的。详细讲解了如何在远程服务器及Docker容器中配置JVM启动参数以启用调试,并指导如何在IDEA中设置远程调试客户端,确保服务启动后可以正常进行远程调试。注意调试速度可能受CPU性能和网络状况影响,且无法实时修改代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们说一下调试的本质,了解了调试的本质我们就很容易理解远程调试是怎么来的了。

  1. Java本地debug时我们常常以为breakpointer打在了java文件中,看到到了breakpointer处jvm停了下来,认为debug时jvm运行的就是java文件了。其实并不是这样。jvm只能运行经过编译后的class文件,那么breakpointer打在了java文件中虚拟机怎么知道什么时候暂停呢,答案当然是通信了,本地运行的服务和IDE进行通信确定断点的位置和单签运行stack中的value。

  2. Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的,两者之间可以通过socket进行通信

说完了本质,接下来的工作就容易了。远程调试是jvm附带的功能,jvm的功能当然是用启动参数来开关了。

首先我们在远程服务器jvm启动参数里添加如下命令

-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address={
   port}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值