在IntelliJ中调试gradle jettyRun

Rob*_*ian 7 debugging remote-debugging jetty intellij-idea gradle

我从命令行运行Jetty:

export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n"

gradle jettyRun
Run Code Online (Sandbox Code Playgroud)

并看到:

Listening for transport dt_socket at address: 9999
Run Code Online (Sandbox Code Playgroud)

...然后在IntelliJ Idea(Ultimate 12.1.3)中,我使用所有默认值创建一个新的远程调试配置,仅将端口更改为9999.

当我使用远程配置启动(调试)时,我看到:

Connected to the target VM, address: 'localhost:9999', transport: 'socket'
Run Code Online (Sandbox Code Playgroud)

...这让我觉得一切都按预期工作.

然后我发出应该导致命中断点的请求.但断点从未被触发.

我究竟做错了什么?

谢谢.

Err*_*ais 5

您可以在gradle.properties文件中设置"org.gradle.jvmargs"变量.这会导致JVM分叉,这意味着您不再调试正确的进程.

在这种情况下,您可以不设置"org.gradle.jvmargs"或传递调试参数,例如.

org.gradle.jvmargs = -XX:MaxPermSize = 128m -Xdebug -Xrunjdwp:transport = dt_socket,server = y,suspend = y,address = 1233

在org.gradle.jvmargs中设置调试参数将配置分叉进程以进行调试.


edu*_*ohl 0

在 IntelliJ(至少在 12.1.5 上)中,您只需转到 JetGradle,右键单击 jettyRun,然后单击“调试”。