我正在尝试使用Intellij Idea的远程调试器调试Spring-boot应用程序。
我使用Intellij Idea“ Spring Boot”运行配置在开发计算机上本地运行应用,并在运行配置中配置了以下VM选项:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
我没有其他正在运行的Java应用程序。
然后,我运行另一个Intellij Idea运行配置“ Remote Debugger”。它具有以下配置:
host: localhost; port:5005, debugger mode: Attach to remote JVM
我可以在控制台中看到以下消息:
Connected to the target VM, address: 'localhost:5005', transport: 'socket'.
但是控制器类和其他组件中的断点将被忽略。
但是!!!如果我选择Spring Boot运行配置并仅在调试模式下运行它(这样就无需运行单独的Remote Debugger运行配置),则断点将按预期工作。
答案 0 :(得分:0)
确保代码在要调试的VM中执行。检查此例如进行日志记录。
示例:
您必须命中REST端点。使用浏览器或REST客户端执行此操作将按预期将VM停止在配置的断点处。为此,运行SpringBootTest将在其自己的VM中执行代码,模拟Web服务器或在其他(可能是任意)端口上启动新的Web服务器。