远程调试DEBUG
远程调用debug 调试程序
在工作中遇到了需要远程调试程序的问题,需要本地远程debug代码。
下面讲解两种方式,方式一是我觉得最舒服的解决方案大家可以参考一下。
方式一和方式二首先只是配置远程服务端的参数,后面还有Idea连接的配置(这里因为远程服务端的配置包括启动命令可能有所不同,Idea的配置基本相同,所以放到了最后统一描述)。
服务端的配置
方式一:
通过命令启动jar包
1 | java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n -jar xxx.jar |
这种方式直接,不需要在打包插件中添加内容
完整命令:
端口号为:5005 这个是远程调试的端口号
-Dspring.cloud.nacos.config.server-addr=127.0.0.1:8848
-Dspring.cloud.nacos.config.namespace=test
这两行命令为获取配置文件的命令,如果没有也可以不要。
test.jar 这个为启动的jar包
eg:
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n -jar -Dfile.encoding=utf-8 -Dspring.cloud.nacos.config.server-addr=127.0.0.1:8848 -Dspring.cloud.nacos.config.namespace=test -Xms512m -Xmx512m test.jar >/dev/null 2>&1 &
方式二:
需要在打包插件中加入configuration标签中的内容,然后打包发布到服务器上
1 | <build> <finalName>Test</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> |
这里需要注意的是,远程连接的端口号要跟后面Idea配置的相同。
通过命令启动jar包
1 | java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar xxx.jar |
Idea的配置
上述远程配置和启动命令有所不同,但是Idea的配置和使用是相同的。
步骤一:
进入后添加remote
这里要注意host和port;一个是服务的远程ip地址,一个是端口号,这些要跟远程服务的配置相同。
然后启动
如果出现如图所示说明启动成功。
然后调用接口,可以正常进入debug。
实际使用
远程调用nacos 调试程序
修改stamd.cmd脚本
在其中添加
set “JAVA_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,address=6666,server=y,suspend=n”
监听6666 端口
command 中将命令添加进去即可 远程调试
![[debug.jpg]]
tomcat 远程调试:
- 在 windows系统里
在catlina.bat 中加入:
set "JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
或者下面这个 ,具体忘了是哪个了
set CATLINA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
![[catlina-bat.bmp]] - 在linux系统里:
在catlina.sh中加入:
金蝶aas应用服务器:
在 资源管理-->JVM参数 中开启debug 重启即可,端口默认8000
强制清除npm 缓存命令 npm cache clean --force