Intellij IDEA远程调试Tomcat和Spring Boot项目

有时候会遇到一些bug,测试环境重现不了,需要在预演或者生产上才出现,因此需要通过远程调试方式连接过去,可以单步调试问题。

单步调试会中断并等待,如果是生产问题,可以单独再启动一个生产一样的JVM做测试。

Tomcat配置

启动Tomcat调试

Tomcat默认支持单步调试,因此只需要开启即可:

# Windows
catalina.bat jpda start
# Linux
./catalina.sh jpda start

实际Tomcat的命令行参数:

# Tomcat中配置
-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
# 常用调试:
java -jar -agentlib:jdwp=transport=dt_socket,address=0.0.0.0:8000,server=y,suspend=n xxx.jar

相关bat源码:

if not ""%1"" == ""jpda"" goto noJpda
set JPDA=jpda
if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
set JPDA_TRANSPORT=dt_socket
:gotJpdaTransport
if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
set JPDA_ADDRESS=localhost:8000
:gotJpdaAddress
if not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend
set JPDA_SUSPEND=n
:gotJpdaSuspend
if not "%JPDA_OPTS%" == "" goto gotJpdaOpts
set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
:gotJpdaOpts
shift
:noJpda

自定义Tomcat调试参数

默认情况下,Tomcat调试参数监控:localhost:8000

如果需要自定义,可以另外编写一个bat/sh文件,或者修改catalina.bat文件,添加

# 自定义端口
set JPDA_ADDRESS=localhost:8001
# 上面这种配置只能localhost访问,远程访问一般都不在自己的机器上,需要配置成:
set JPDA_ADDRESS=0.0.0.0:8001

Intellij IDEA远程调试

在IDEA中添加一个运行配置,选择【Remote JVM Debug】:

配置远程Tomcat监听的地址:

连接成功之后可以看到提示信息:

Connected to the target VM, address: 'localhost:8000', transport: 'socket'

然后就可以打上断点,单步调试了。

Spring Boot工程远程配置

微服务一般通过jar包启动,因此在jar包启动参数中添加

java -jar -agentlib:jdwp=transport=dt_socket,address=0.0.0.0:8000,server=y,suspend=n master-service-provider.jar
# 可以看到输出就可以了,注意,jar包参数要在最后
# Listening for transport dt_socket at address: 8000

然后就可以通过Idea链接过去了,和Tomcat工程连接方式一样。

image-20211109142847209

看到连接成功的消息就可以调试了。

Connected to the target VM, address: 'localhost:8000', transport: 'socket'
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇