当前位置:网站首页>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远程断点调试
边栏推荐
- 揭秘 | 2019 To B 年度盛宴那些人和那些事
- 【高并发】我用多线程优化了亿级流量电商业务下的海量数据校对系统,性能直接提升了200%!!(全程干货,建议收藏)
- 【地形】【虚拟纹理】地形虚拟纹理技术介绍
- sorting and searching 二分查找法
- factorial factorization
- Swagger
- What is the GMAT test?
- [极客大挑战 2019]BabySQL 1
- 商城商品的知识图谱构建
- RocketQA:通过跨批次负采样(cross-batch negatives)、去噪的强负例采样(denoised hard negative sampling)与数据增强(data augment
猜你喜欢
随机推荐
58 security - image quality assessment technology practice
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
Exchange the STP/network knowledge
[C语言刷题篇]链表运用讲解
抗HER2/neu受体拟肽修饰的紫杉醇自蛋白纳米粒/环境敏感型多糖纳米粒的制备,
factorial factorization
如何在C语言中定义自己的数据类型?
LinkedList 5-141. The circular linked list
HMS Core Discovery第16期回顾|与虎墩一起,玩转AI新“声”态
[网络]路由路由策略
MLX90640 infrared thermal imager development notes (9)
中芯国际:禁令后全力自救,设备等待期拉长,但没有客户“离开”
Greedy (1) interval complete coverage problem
[网络]LAN技术MSTP
Loadrunner与Jmeter区别与相同
Sorting and searching binary search method
阶乘因式分解
#夏日挑战赛# HarmonyOS - 实现签名功能
The two armies clash
接口项目02文档:Jmeter接口测试与性能测试









