零.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调试_idea 远程调试-CSDN博客

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部