服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。
使用远程调试的JVM参数运行服务端代码
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005
其中,5005就是远程调试的端口。
本地Idea连接远程服务器debug端口
打开Intellij IDEA,在顶部靠右的地方选择”Edit Configurations…”,进去之后点击+号,选择”Remote”,按照下图的只是填写红框内的内容,其中host为远程代码运行的机器的ip/hostname,port为上一步指定的远程调试端口,本例是5005。
启动debug模式
现在在上一步选择”Edit Configurations…”的下拉框的位置选择上一步创建的remote的名字,然后点击右边的debug按钮(长的像臭虫那个),看控制台日志,如果出现类似“Connected to the target VM, address: ‘xx.xx.xx.xx:5005’, transport: ‘socket’”的字样,就表示连接成功过了。
设置断点,开始调试
设置好断点,访问远程服务器触发断点,idea会自动跳到断点处,变量值显示的也是远程服务器的变量值。