idea远程debug调试

背景

有时候我们线上/测试环境出现了问题,我们本地跑却无法复现问题,使用idea的远程debug功能可以很好的解决该问题

配置

远程debug的服务,我们使用Springboot项目为例(SpringCloud作为微服务项目我们可以可以使用本地注册到远程项目,远程调试可能也并不是好的选择)。首先我们启动SpringBoot需要添加特定的参数

IDEA配置

不同版本的IDEA的配置接界面可能不一致,但是总体类似,我是用的版本是2020.3.2。

1、配置IDEA

2、我们在配置idea生成的远程JVM的命令行参数(c) 粘贴复制 启动java程序 * 可能需要转义

3、选择远程JVM调试配置使用 debug 方式启动即可

问题

问题1:停在本地断点,关闭本地程序会怎样

答:远程代码会按照远程代码逻辑执行完毕

问题2:jar包本地代码和远程不一致会怎样

答:不一致,会按照远程调用,在调用是按照行数去匹配的,而不是代码相似度

问题3:日志打印

答:日志打印会在远程主机,毕竟我们实际执行还是远程代码,日志并不会打印到本地控制台

问题4:调试时别人能否使用

答:别人不能使用,同步操作,要先等到我们的断点过去方能使用,所以线上环境不轻易使用远程调试

问题5:本地代码修改后,远程的能按照修改

答:不能,同问题2、问题3一样,代码实际执行是按照远程代码jar包执行的,我们在本地修改是无用的

IDEA能够远程调试的原理

idea的调试原理,无论是远程调试还是本地的编译代码调试原理是一样的,我们看一下idea本地debug启动后打印的日志

是不是很熟悉,和我们上面远程调用的参数十分类似,这就是我们能够debug的原因,本质上是利用了java Agent原理。这个功能十分强大,类似一个AOP,代理了java程序,可以利用它进行调试、热部署等。

探索

上面说了这么多,还有远程debug的缺点,而且我们并不常用,有没有替代方案呢?答案是有的

  • 可以了解一下 Arthas(阿尔萨斯)------java线上问题定位处理的终极利器
  • 上面说到了 java Agent 后续可以了解下
相关推荐
刘冲溟2 天前
解决 idea 编辑sql文件换行后自动缩进的问题
sql·idea·缩进
bjzhang753 天前
IDEA 2025.3重磅发布,Ultimate 终极版和 Community社区版二合一,免费版可商用
java·idea
AA陈超8 天前
JetBrains Rider ‘IntelliJ‘ 快捷键映射表
ide·intellij-idea·idea·intellij idea
猫头虎9 天前
GoLand 2025.3 最新变化:值得更新吗?
ide·windows·macos·pycharm·编辑器·intellij-idea·idea
咖啡不甜不好喝9 天前
IDEA全局设置以及实用的配置
idea
猫头虎9 天前
IntelliJ IDEA 2025.3 最新变化:值得更新吗?
java·开发语言·ide·人工智能·intellij-idea·idea·gitcode
applebomb11 天前
经济、能打的vibe coding后端组合:IDEA+Claude Code(WSL)+GLM4.6安装与配置
java·idea·ai编程·vibecoding
qq 1808095113 天前
打造基于C++、Qt与OpenCV的超酷图像编辑器
idea
golang学习记14 天前
GoLand 2025.3 正式发布:Claude Agent 深度集成!
ide·idea·goland
桂花饼16 天前
字节Seedream-4.5架构揭秘:当AI开始拥有“版式推理”能力,CISAN与DLE引擎如何重构多图生成?
人工智能·aigc·idea·sora2 api·gemini 3 pro·claude opus 4.5·doubao-seedream