我一直在尝试通过定义setenv.sh来调试Apache Tomcat。这些是文件的内容。
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y"
我使用IntelliJ IDEA作为IDE。
当我将setenv.sh文件放在bin文件夹中时,每次成功连接到端口8000但我发现在某些尝试中,调试点得到满足,但有时却没有。当我停止调试器时,服务器永远不会启动。我正在使用sh bin/catalina.sh jpda start
命令。日志在这种尝试中也不起作用。
但sh bin / catalina.sh在每次尝试时都能正常工作。
这种奇怪行为的原因是什么?
答案 0 :(得分:0)
在某些尝试中,调试点得到满足,但有时候他们不会
我相信你的意思是break points
。检查您是否使用与编译的tomcat相同的源版本。版本之间存在不匹配是正常的(并且是预期的)。另外,请确保您不会意外地重新格式化来源。
当我停止调试器时,服务器永远不会启动
应用程序无法启动,因为您有suspend=y
标志,这意味着"等待调试器附加"。将其更改为suspend=n
,应用程序将在没有调试器的情况下启动。
PS:当您想要调试时 - 使用catalina.sh jpda start
启动服务器。如果没有 jpda 参数,JVM将无法在调试模式下启动