idea remote debug

一、介绍:

Java远程调试的原理是两个JVM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。

二、步骤:

1、修改配置文件,添加jvm 启动参数 -Xrunjdwp 开启远程debug 端口。一般设置为8888 ,注意staging环境部署了多个项目,端口可能冲突。

参数: "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888"

2、线下发布成功后,可以查看进程判断是否开启了远程debug端口

#ps -ef | grep   java 

3、接下来在IDE中配置项目的远程debug即可。idea中可以这样配置

 菜单栏 run\edit configurations,左上角+ 添加一个remote 

remote配置中设置host 为staging环境 host:目标服务器    ip port:8888 应用即可~

接下来在工具栏里选择刚添加的remote ,点debug即可像在本地debug一样debug staging环境的代码了~

三、注意:

远程debug确实好用,但不要上瘾~毕竟在debug的时候,别人就没法正常使用staging环境了。所以除非万不得已,不要在staging环境debug。

这个改法应该也适用于线上环境,但是线上环境更加谨慎。千万不要这样乱搞~

(工程里可以设置jvm启动参数,不是一个很安全的方法。一般都应该是运维在服务器上去设置的)

 

----------------------分割线以下是特殊场景---------------------

由于涉及到公司服务器配置,没有截图,有些步骤也没写的特别清楚,搞不定的可以留言我。

1.修改host

在noah环境中找到测试环境hosts配置,粘贴到本地hosts(beta,dev也可以,当然线上也可以)

2.登录服务器

登录服务器

ifconfig查看服务器ip

3.idea配置远程debug

在idea中点击下面按钮开启Run/Debug Configurations界面

点击"+"添加Remote类型配置得到下图.configuration中配置Host和Port,Host填服务器ip,Port填服务器端口,比如50001(这种remote模式不能调试jsp文件,因此想调试jsp文件,请用tomcat server remote模式)

Note: Host服务器IP可以在跳板机连接后,输入ifconfig进行查看。

4.登录服务器

在工程文件夹中,找到tomcat的启动脚本修改里面tomcat的启动参数,添加上图中参数设置示例到export JAVA_OPTS="..."里,下面两个参数任意一个都可以。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:<port>
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:<port>

上面的address中<port>是java debug的服务端口,自己定义,注意不要和其他端口冲突,

比如 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005

5.重启tomcat服务

sudo /home/q/tools/bin/restart_tomcat.sh /home/q/www/ttsui/  

( 红字替换成自己的工程文件名)(且慢,这里是不用替换自己的文件名,直接是原来工程名即可)

6.socat端口映射

我使用的服务器的ip地址为11.11.11.11, 本机的ip地址为1.1.1.1,因为服务器java debug服务端口是5005端口,而idea中设置的java debug监听端口是50001端口,此时我想用本机连接服务器进行远程调试,需使用socat进行端口映射:

socat TCP4-LISTEN:50001,fork,range=1.1.1.1/32 TCP4:127.0.0.1:5005

上面命令有一个很重要的注意点:range后面的ip之后的24代表这个ip的100.81.128必须与本地相同,如果是32,则表示整个ip都与本地相同,这个意思就是这个ip地址的人在socat转发的端口上可调试

调试之后,记得关闭这个进程,否则

7.开始debug

点击本地工程debug按钮,出现如下提示即为远程连接成功,在相应位置添加断点,向服务器发送请求,开始调试

8.发送测试请求
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值