IDEA远程调试JAVA:Java 调试线协议(JDWP)。
·
在 IntelliJ IDEA 中进行 Java 远程调试是一个非常实用的功能,尤其适合调试运行在远程服务器或容器中的 Java 应用程序。
远程服务器java进程
登录远程服务器,查看要调试的JAVA进程,ps -ef|grep java
JAVA进程启动命令中的调试参数,-Xdebug开启调试模式,-Xrunjdwp 用于加载 JDWP 调试代理,Java 调试线协议(JDWP)。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:8418
transport=dt_socket:调试传输方式,TCP/IP socket(最常用,支持远程调试)server=y:当前 JVM 作为调试服务器,等待调试器连接suspend=n:JVM 启动后不暂停(suspend=y表示启动后暂停,等待调试器连接后再继续)address=8000:-本地调试:可简化为5005(默认本地地址)或127.0.0.1:5005- 远程调试:需指定 IP + 端口,如192.168.1.100:5005。
对于禁止远程访问但可以通过跳板机访问的远程服务器,可通过配置端口转发连接到远程服务器调试端口,用户名和ssh服务器为跳板机账号,登录通过后可连接。
ssh -L [本地IP:]本地端口:目标IP:目标端口 用户名@SSH服务器IP
IDEA配置远程调试
- 打开 IDEA,点击顶部菜单
Run->Edit Configurations - 点击左上角
+号,选择Remote JVM Debug - 配置调试信息:
- Name:自定义名称(如
Remote-Debug-App) - Host:远程服务器 IP 地址或域名,如果配置了ssh转发,host和port则为本地ip(127.0.0.1)和端口
- Port:远程调试端口(与前面设置的
address一致,如 5005) - Transport:默认
Socket即可 - Debugger mode:默认
Attach to remote JVM - Use module classpath:选择和远端服务器一致的源码目录
- Name:自定义名称(如
- 其他保持默认,点击
Apply->OK保存配置 - 点击IDEA右上方小绿虫子就开启调试了,如果遇到Connect问题,就是连接有问题,需要确认远程服务器端口可访问。
基础
ps 查看进程状态,全称为 "process status"。如进程 ID、运行状态、占用资源等
ps --help all 查看所有options
ps -ef
以全格式显示所有进程,包含父进程 ID(PPID),适合查看进程间的父子关系。
ssh -L 是 SSH 命令中用于建立本地端口转发(Local Port Forwarding)的参数,它可以将本地计算机的某个端口流量通过 SSH 隧道转发到远程服务器
Java 调试线协议(JDWP,Java Debug Wire Protocol)是 Java 平台定义的一套跨平台、跨语言的调试协议,用于实现调试器(如 IntelliJ IDEA、Eclipse Debugger)与被调试的 Java 程序(目标 VM)之间的通信,是 Java 调试能力的核心底层支撑
更多推荐
所有评论(0)