需求
由于我们日常开发提交测试环境后,一些问题的排查需要跟测试配合进行,这时最需要的是远程Debug,跟踪代码查找问题。
配置
根据JDK版本不同,命令也不同,我测试环境jdk11:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:40302
启动命令
1、正常启动命令
nohup java -jar xxxx.jar >/log.file &
2、Debug启动命令
nohup java agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:40302 -jar xxxx.jar >/log.file &
其他
1、示例中使用的是jar包启动的方式,通过配置启动脚本进行debug端口配置。
2、也可以通过tomcat中配置进行设置。
CATALINA_OPTS=“-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089”
3、Debug时,要求本地代码要和服务器代码一致否则容易崩溃。
4、idea中remote的两种模式,使用Attach模式
Attach :此种模式下,调试服务端(被调试远程运行的机器)启动一个端口等待我们(调试客户端)去连接;
Socket :此种模式下,是我们(调试客户端)去监听一个端口,当调试服务端准备好了,就会进行连接。