Administrator
发布于 2024-03-14 / 36 阅读
0
0

IDEA 远程Debug

IDEA 远程debug

当 我们将Java服务,部署到公网上的Linux服务器上后,如果出现了线上问题,且通过查看日志,很难定位时,此时,可以考虑使用远程debug,来定位问题。

1.Linux服务器上,我们采用如下命令,来部署Java服务:

/opt/OpenJdk/Jdk11/bin/java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8172 /opt/Iot/iot2-server-manage.jar --spring.profiles.active=xuyirelease 

相比于普通的部署命令,这里加入了jdwp服务,

JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和目标虚拟机(target vm)之间的通信协议。Target vm 中运行着我们要调试的 Java 程序,它与一般运行的 JVM 没有什么区别,只是在启动时加载了 JDWP Agent 从而具备了调试功能。而 debugger 就是我们本地的调试器,它向运行中的 target vm 发送指令来获取 target vm 运行时的状态和控制远程 Java 程序的执行。Debugger 和 target vm 分别在各自的进程中运行,他们之间通过 JDWP 通信协议进行通信。


注意,上面的命令中,8172端口就是专门用于远程debug调试的端口,这个端口要在防火墙上打开

2.在本地IDEA中,我们采用如下配置:

image-20240314144908397

3.在本地IDEA中,我们点击debug按钮,就能连接到远程服务器上了

4.我们调用远程服务上的接口后,就能自动在本地IDEA上,看到代码执行和断点停顿了


评论