当前位置:网站首页>IDEA远程调试
IDEA远程调试
2022-07-29 17:14:00 【-柚子皮-】
IDEA 远程调试,像运行本地代码一样调试远程主机上的程序,以排查远程程序的BUG或代码执行流程。
1 概述
原理:本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。
被调试程序的远程虚拟机:作为 Debug 服务端,监听 Debug 调试指令。jdwp是Java Debug Wire Protocol的缩写。
调试程序的本地虚拟机:IDEA 中配置的 Remote Server,指定 Debug 服务器的Host:Port,以供 Debug 客户端程序连接。
2 设置
2.1 IDEA 中指定 Debug 服务器
点击主窗口菜单 Run / Edit Configurations,打开“Run/Debug Configurations”窗口;
点击工具栏上的“+”按钮,下拉菜单中选择“Remote”;
设置 Host 为远程服务器的域名或IP,保持 Port=5005 无需调整;
复制命令行参数,形如 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
2.2 远程服务中开启 Debug 服务
2.2.1 对于 SpringBoot
命令行添加选项,并重启:
## 注意新参数必须在 -jar 之前
jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test.jar
2.2.2 对于 Tomcat
启动脚本中添加选项,并重启:
## sudo vim $CATALINA_HOME/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
2.3 远程服务器防火墙端口放行
### sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5005 -j ACCEPT
### 重启生效: sudo systemctl restart iptables
3 开始调试
要求:双方代码一致,否则远程调试无法启动;
本地启动刚刚配置的 Remote Server,正常时会看到日志: Connected to the target VM, address: 'xxx:5005', transport: 'socket'
本地 IDEA 代码中设置断点
浏览器或手机 HTTP 访问服务器
IDEA 即可在断点暂停并跟踪
4 关闭调试
服务器上多开放个端口是不安全的,调试完毕后可恢复防火墙设置。
而 Java 服务器开启 Debug 服务器的功能可以保留,以便之后再次调试。
解决断点debug卡顿问题
解决断点debug卡顿问题
1.把toString关掉
点开设置,搜索toString 把下图中红框勾掉。
解决:走了第一个断点,走到下一个断点很慢的问题。
2.断点设置为线程级别
勾选Thread 并点击右侧的 Make Default。
解决:断点一个op,其他op也被暂停执行导致的各种超时问题。

3.不要在Method上设置断点
断点设置在代码上,不要在方法上打断点。
解决:设置断点之后运行特别慢的问题(第一个断点都慢)。

from: IDEA远程调试_-柚子皮-的博客-CSDN博客_idea远程调试
ref: IDEA 远程断点调试_Destiny_zz的博客-CSDN博客_idea远程断点调试
边栏推荐
- TensorFlow Serving high-performance machine learning model of service system
- 牛血清白蛋白-葡聚糖纳米颗粒包埋蛋清源活性肽/葡聚糖共价接枝物的制备
- 大数阶乘计算
- 接口项目02文档:Jmeter接口测试与性能测试
- 浅聊对比学习(Contrastive Learning)
- 【 Leetcode 】 200. The number of islands (medium)
- 华虹半导体四季度营收再创历史新高,同比增长15.4%
- pycaret在钻石数据集上的使用 - 回归问题
- [极客大挑战 2019]LoveSQL 1
- 溢价20%,瑞萨电子宣布拟以60亿美元收购Dialog
猜你喜欢
随机推荐
Recall i2i
RocketQA: across batches negative sampling (cross - batch negatives), the denoising of strong negative cases of sampling (denoised hard negative from) and data to enhance (data augment
When to use UserCF and when to use ItemCF?
Knowledge map construction whole process
HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
CRM如何帮助企业营销获客
[PCL study notes] Commonly used libraries and APIs for point cloud processing (PCL library Eigen)
58安全-图像质量评价技术实践
Swagger
贪心(1)区间完全覆盖问题
Database Project 01 Documentation: Database Skills Needed for Software Testing
[网络]路由路由策略
Route ISIS
query词权重, 搜索词权重计算
【地形】【虚拟纹理】地形虚拟纹理技术介绍
生物JC TRIM37防止凝集物组织的异位纺锤体极点的形成,以确保有丝分裂的保真度
新建和编辑共用一个表单,编辑之后新建,form表单resetFields失效
Flutter动态化 | Fair 2.6.0 新版本特性
#夏日挑战赛# HarmonyOS - 实现签名功能
如何让照片中的人物笑起来?HMS Core视频编辑服务一键微笑功能,让人物笑容更自然









