idea远程调试代码

idea远程调试代码

实现原理为:
本机和远程主机的两个VM之间使用Debug协议通过Socket协议通信,传递调试指令和调试信息,
其中,调试的程序常常被称为debugger,而被调试的程序称为debuggee

大致结构如上图,分为三个过程,用于调试的程序使用UI,通过protocol,调用远程JVM进程

idea配置


1.添加Remote JVM Debug
2.填写远程ip
3.填写端口号
填写完成会自动生成Command line arguments for remote JVM
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6101

启动jar包

在启动jar包时后面添加刚才生成的参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6101
然后运行idea

如果启动成功,会在控制台显示,然后请求进入会进入断点

参数介绍

加载本机代理库,jdwp为Java Debug Wire Protocol的缩写,它定义了调试器(debugger)与被调试的JVM(debuggee)之间的通信协议
下面为参数的可配选项

需要注意的地方

如果出现下面错误
Error running 'remote': Unable to open debugger port (xx.xx.xx.xx:6101): java.net.ConnectException "Connection refused (Connection refused)"
无非就是ip地址错误或者端口号错误,
检查ip地址是否有误,ip地址是否与idea填写配置一致,能否ping通;
端口号是否有误,端口号是否与idea填写配置一样,防火墙是否有该端口号,是否为该端口添加入站出站规则,端口是否已经被占用.

posted @ 2022-08-29 18:15  木马不是马  阅读(388)  评论(0编辑  收藏  举报