项目实施过程中,总会有各种诡异的问题发生,其中很大可能是环境问题。比如开发、测试环境都是好的,但是生产环境却有问题,bug无法重现怎么办,这时候就想要是能远程debug就好了。其实Java本身就支持远程debug的哦,具体步骤也很简单,idea、eclipse的调试方法也基本一致。

java 远程加载 java 远程debug_debug

 

要让远程服务器运行的代码支持远程调试,在服务启动的时候加上特定的JVM参数就可以了,格式如下,

-Xdebug -Xrunjdwp:transport=dt_socket,address=8088,suspend=n,server=y

其中address指的是用于debug的端口号。

比如我们部署的是一个spring boot应用,则可以这样开启远程调试:

一、远程服务,配置JVM启动参数

服务启动时加入开启远程调试的参数,这里注意指定下远程debug的端口号,后面远程调试的时候需要连接这个端口号。

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8088,suspend=n,server=y-jar myService.jar

java 远程加载 java 远程debug_idea_02

 

二、本地代码,配置远程debug连接

打开Intellij IDEA,在顶部靠右的地方选择“Edit Configurations…”,进去之后点击 + 号,选择“Remote”,新建远程调试连接。这里注意配置几点,

  1. Host,指的是需要远程调试的服务器地址。
  2. Port,就是上面配置的用于调试的端口号。
  3. module,是指用于远程调试的本地代码库,这里注意本地代码需要和远程代码保持一致,断掉打在本地就可以了。

java 远程加载 java 远程debug_idea_03

 

三、开始远程debug

上面两步配置完成后,就可以开始我们的远程debug了,debug启动刚刚配置的Remote server。打开我们的本地代码,断点打好,就可以开始远程调试了。

java 远程加载 java 远程debug_java 远程加载_04

 

这里注意下,远程调试虽然方便,但是也要慎用,测试、开发环境一般问题不大,生产环境可要慎用哦。