什么,你还不会远程调试?

180 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情

4965ede6a7d1bb9-1024x1024.jpeg

背景

  • 测试:你这里结果不对啊,你看!
  • 后台:是么?你看我本地都是正常的啊,是不是你打开方式不对?
  • 测试:看了你一眼,表示不想理你,然后扔给你一个bug
  • 后台:等会,我加点日志更新上去看下。。。 10分钟后。。。
  • 测试:找到问题了吗?
  • 后台:没有,日志太少了,分析不出来,我再加多点日志 又过了10分钟。。。
  • 后台:我天,原来是测试环境配置项不对。。。

虽然这个bug就愉快的解决了,但是后台开发却花了半个多小时才发现问题所在,经历了2次改代码加日志,又重新验证,真的浪费时间,如果能像在本地一样直接打断点调试就方便多了。 经过一番了解,原来通过IDEA远程调试这么方便,实际操作一遍,感觉简单好用,推荐给大家。以后找测试环境的bug再也不用那么麻烦了

使用 1、打开IDEA中对应的项目,右上角Edit Configrations,然后选择新增Remote JVM Debug

image.png

然后在右边输入对应远程的服务器的IP地址和远程调试要使用的端口,接着复制出下面Command line arguments for remote JVM中的内容备用,点击Apply保存

image.png

2、 在中间件中的JVM配置中增加复制出的JVM参数内容,如我是用的是tomcat,即在tomcat的catalina.sh中增加参数

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

保存后重启服务器中间件

3、 配置完成后接下来就能开启远程调式了,IDEA右上角选择刚添加的Remote JVM Debug的选项,成功建立连接之后,即可在本地代码中打点调式了,就和在本地启动了服务一样,十分方便

注意 1、远程调式的端口并非tomcat中间件的服务端口,而是远程调试要使用的端口,要注意此端口未被占用,否则会无法连接远程调试

2、远程调试断点时间不能太长,否则可能会导致整个服务无法使用,必须重启才能解决,具体原因还不太清楚

3、远程调试之前记得保证本地IDEA代码和远程服务器的代码是完全一致的