Is it possible to attach the IntelliJ IDEA debugger to a running Java process? If yes, how?
This question is related to
debugging
intellij-idea
It's possible, but you have to add some JVM flags when you start your application.
You have to add remote debug configuration: Edit configuration -> Remote.
Then you'lll find in displayed dialog window parametrs that you have to add to program execution, like:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Then when your application is launched you can attach your debugger. If you want your application to wait until debugger is connected just change suspend flag to y (suspend=y
)
Also I use Tomcat GUI app (in my case: C:\tomcat\bin\Tomcat9w.bin).
Go to Java tab:
Set your Java properties, for example:
Java virtual machine
C:\Program Files\Java\jre-10.0.2\bin\server\jvm.dll
Java virtual machine
C:\tomcat\bin\bootstrap.jar;C:\tomcat\bin\tomcat-juli.jar
Java Options:
-Dcatalina.home=C:\tomcat
-Dcatalina.base=C:\tomcat
-Djava.io.tmpdir=C:\tomcat\temp
-Djava.util.logging.config.file=C:\tomcat\conf\logging.properties
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Java 9 options:
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Also, don't forget you need to add "-Xdebug" flag in app JAVA_OPTS if you want connect in debug mode.
Source: Stackoverflow.com