为什么要用远程调试?
1.服务启动时间较长
2.本地调试通过前端时常会打到远程服务器上
3.本地环境Windows,远程环境为Linux
怎么远程调试?
Idea Edit Configurations -> + Remote
重要的是远程机器Ip , 端口
-Xdebug 启用调试特性。
-Xrunjdwp: 在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。
transport 这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。
server 如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。
address 这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
suspend 如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。
Java远程调试的原理
由于是对源码进行调试,源码经编译后运行在远程服务器上,并且在本地Idea IDE中打开源码。在Idea连接上远程服务后,测试请求远程服务,在可以看到idea中设置的断点信息。
两个VM之间通过JDWP(Java Debug Wire Protocol)协议进行通信,然后以达到远程调试的目的。
远程调试的核心:JPDA(Java Platform Debugger Architecture)框架