疫情又来了,于是大家又开始了AB班(摸鱼)模式,今天安排我居家办公。远程吧,哎呀好卡呀,闲了吧像演示一波如何远程debug线上代码,可惜这个v**老是不稳定,还是本地演示一波吧,效果是一样的。当然这块只是演示步骤,技术层面停留在熟练掌握的程度。如果要成为大佬,您可能需要考虑怎么重新搞一套debug机制啥啥的。好了,废话就说这么多吧。来操作吧。
首先,为了模拟线上代码。我们将demo工程进行打包:
代码语言:javascript复制maven package
然后我们运行我们的代码,这块要加入我们远程debug的相关配置:
代码语言:javascript复制java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 demo1-0.0.1-SNAPSHOT.jar
这块的意思大概就是说让线上的代码开启5005端口用来远程debug。
线上代码跑起来之后呐,我们考虑让我们的idea对接到这个线上代码。这块我们考虑一下肯定是线上jar包代码和本地idea代码一样的哈,不一样那debug就是搞笑么。考虑到我们的jar包已经占用了端口,因此我们用新的端口来运行我们的idea代码。
要远程debug,我们必然要将ip和端口到我们的启动项目配置中,我们找到idea的远程配置。
比如我这里的配置如下:
配置好我们的远程debug之后,我们选择我们的远程启动配置。然后debug走起!
现在我们就测试一下我们的代码能不能debug到线上的jar包。在浏览器中填入测试url,然后看看效果。
通过上述测试,我们的目标已经达成,我们貌似可以debug任何线上代码了?,不要忽略机房的防火墙哦,而且目标机器往往都是层层代理,你根本debug不上。所以你怎么办呐?好像也只有一种办法了,开小门,做机房中做一个代理服务器,这块我们可以采用nginx代理或者netty自己开发一个。让我们的idea单刀直入debug看看到底啥地方有问题哈。
好了,本次文章就到这里了。希望疫情早点过去吧。
午安~