Intellij Idea Remote忽略Spring组件代码中的断点

时间:2018-10-18 07:56:20

标签: java docker spring-boot intellij-idea remote-debugging

我正在尝试使用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运行配置),则断点将按预期工作。

1 个答案:

答案 0 :(得分:0)

确保代码在要调试的VM中执行。检查此例如进行日志记录。

示例:

您必须命中REST端点。使用浏览器或REST客户端执行此操作将按预期将VM停止在配置的断点处。为此,运行SpringBootTest将在其自己的VM中执行代码,模拟Web服务器或在其他(可能是任意)端口上启动新的Web服务器。