一、使用特定JVM参数运行服务端代码
要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是JAVA_OPTS:
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port}
其中的${debug_port}
是用户自定义的,为debug端口,本例以8888
端口为例。
或者换成如下配置也是没问题的:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888
二、本地连接远程服务器debug端口
打开Intellij IDEA,找到”Edit Configurations…”,进去之后点击+号,选择”Remote”,按照下图的只是填写红框内的内容,其中Name填写名称,这里为remote webserver,host为远程代码运行的机器的ip/hostname,port为上一步指定的debug_port,本例是8888。然后点击Apply,最后点击OK即可
三、本地IDEA启动debug模式
现在在上一步选择”Edit Configurations…”的下拉框的位置选择上一步创建的remote webserver,然后点击右边的debug按钮(长的像臭虫那个),看控制台日志,如果出现类似“Connected to the target VM, address: ‘xx.xx.xx.xx:8888’, transport: ‘socket’”的字样,就表示连接成功过了。刚开始展示正在连接 要稍等片刻,显示的内容如下:
四、设置断点,开始调试
远程debug模式已经开启,现在可以在需要调试的代码中打断点了
备注:
需要注意的是,用于远程debug的代码必须与远程部署的代码完全一致,不能发生任何的修改,否则打上的断点将无法命中,切记切记。