Remote debug spring boot application with maven and IntelliJ
应用启动开启调试模式,接受远程调试链接
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001,suspend=n -jar target/cxf-boot-simple-0.0.1-SNAPSHOT.jar
这个主要就是启用gentlib:jdwp,在jvm里面启动一个在线调试的协议端口(Enable the Java Debug Wire Protocol (JDWP) agent inside the JVM)。suspend这个参数如果是y的话,程序会等待调试程序才会启动。
这里要说明下,不同版本的jvm启动这个的参数可能不一样, 我在网上查了很多资料,开始试了几个参数都不行(本地jdk1.8 osx),最后找到这个参数可以在本地执行,不代表可以在你的机器上可以执行。
idea开启远程调试模式
打开你的项目,代码和远程需要一致。然后点击 RUN … Edit Configurations 。左边框点击加号,找到里面有一个remote的选项,这样你就创建了一个远程调试的配置,右边你可以设置你的配置名称,远程主机的ip和端口号。下面有个Use module classpath 选择你的项目,点击保存即可。
然后你的运行列表就会多了个这样的远程调试的配置,你就可以运行调试他了。
参考资料:
https://gist.github.com/jonashackt/c1fd6fabdb014be9c4b935798454e17a
https://www.baeldung.com/spring-debugging
https://www.javadevjournal.com/spring/remote-debug-spring-boot-application-with-maven-and-intellij/