零.Pre
当项目部署在公司机器上或者测试环境中(使用人数较少)时,由于开发机器和部署机器的架构不同,操作系统不同,以及其他不可控因素,会导致我们在开发过程中本机调试是完全可以的,测试用例也可以完全cover,但是部署到测试环境中就会有各种各样的问题。
那么,我们排查问题就会比较困难,而Idea的远程debug功能中的attach to remote JVM可以让我们的本地idea连接到远程的服务中,然后就可以通过在本地IDEA代码中打断点,就可以拦截到访问远端服务的请求了,这样就可以直观的查看具体请求的参数了。
还有一种是当我们的程序不是一个持续交互的springboot项目,只是一个单纯的jar包之类的(比如:配置驱动的应用程序)
举例:java -jar xxx.jar 自定义的参数
java -jar xxx.jar --projectId=xxx --args=xxx
这种往往只是根据启动传入的参数,执行一次然后程序就结束。那么,attach的情况不适用了,listen是可以监听项目的整个生命周期,完全就可以适用。
一、Attach
1.远程项目部署命令
在远程的机器上部署命令需要更改 java -jar 后面需要添加:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9080
例子:(见参考文章的3.2)
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9080 -Dserver.port=8080 -Dfile.encoding=utf-8 xxx.jar
2.IDEA配置Remote JVM Debug
见参考文章的4
3.启动远程debug功能
在期望debug的方法处打上断点后,点击debug启动项目:
当请求远程的对应接口时,就会在指定断点阻塞了~当然也可以查看任何你想看的参数了。
(可能此方法的不好之处,就是百万级别的QPS不适用,因为它debug确实也会阻塞整个程序~)
二、listen
与attach类似,配置也类似~
listen可以监听整个项目包括启动时到最后程序结束。
所以,符合配置驱动的应用程序~
1.远程项目部署命令
同上一.1
2.IDEA配置Remote JVM Debug
绿色为常规步骤,只有红色选择模式有所区别:选择listen
3.启动远程debug功能
同上一.3
参考文章
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » IDEA远程debug|attach and listen
发表评论 取消回复