¿Es posible adjuntar el depurador IntelliJ IDEA a un proceso Java en ejecución? Si es así, ¿cómo?
¿Es posible adjuntar el depurador IntelliJ IDEA a un proceso Java en ejecución? Si es así, ¿cómo?
Respuestas:
¡Si! Así es como lo configuras.
Cree una configuración de ejecución remota:
La configuración anterior proporciona tres campos de solo lectura. Estas son opciones que le indican a la JVM que abra el puerto 5005 para la depuración remota al ejecutar su aplicación. Agregue el apropiado a las opciones de JVM de la aplicación que está depurando. Una forma en que podría hacer esto sería así:
export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Pero depende de cómo ejecute su aplicación. Si no está seguro de cuál de los tres se aplica a usted, comience con el primero y baje la lista hasta encontrar el que funcione.
Puede cambiar suspend=n
a suspend=y
para obligar a su aplicación a esperar hasta que se conecte con IntelliJ antes de que se inicie. Esto es útil si el punto de interrupción que desea alcanzar se produce al iniciar la aplicación.
Inicie su aplicación como lo haría normalmente, luego en IntelliJ seleccione la nueva configuración y presione 'Debug'.
IntelliJ se conectará a la JVM e iniciará la depuración remota.
Ahora puede depurar la aplicación agregando puntos de interrupción a su código donde lo desee. El resultado de la aplicación seguirá apareciendo donde lo hizo antes, pero sus puntos de interrupción llegarán a IntelliJ.
Remote
no está disponible en la edición comunitaria? Estoy usando la versión paga. ¿Alguien con la edición comunitaria puede confirmar?
System.out.println
IntelliJ cuando se realiza la depuración remota?
Es posible, pero debe agregar algunas banderas JVM cuando inicie su aplicación.
Debe agregar la configuración de depuración remota: Editar configuración -> Remota.
Luego encontrará en los parámetros de la ventana de diálogo que debe agregar a la ejecución del programa, como:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Luego, cuando se inicia su aplicación, puede adjuntar su depurador. Si desea que su aplicación espere hasta que el depurador esté conectado, simplemente cambie el indicador de suspensión a y ( suspend=y
)
en AndroidStudio o idea
agregar "Opciones de VM" Config
“-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”
recordar "dirección"
También utilizo la aplicación Tomcat GUI (en mi caso: C: \ tomcat \ bin \ Tomcat9w.bin).
Vaya a la pestaña Java :
Establezca sus propiedades Java, por ejemplo:
Máquina virtual de Java
C: \ Archivos de programa \ Java \ jre-10.0.2 \ bin \ server \ jvm.dll
Máquina virtual de Java
C: \ tomcat \ bin \ bootstrap.jar; C: \ tomcat \ bin \ tomcat-juli.jar
Opciones de Java :
-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 = transporte = dt_socket, servidor = y, suspender = n, dirección = *: 8000
Opciones de Java 9 :
--add-opens = java.base / java.lang = ALL-UNNAMED
--add-opens = java.base / java.io = ALL-UNNAMED
--add-opens = java.rmi / sun.rmi.transport = TODOS SIN NOMBRE