Czy można dołączyć debuger IntelliJ IDEA do działającego procesu Java? Jeśli tak to jak?
Czy można dołączyć debuger IntelliJ IDEA do działającego procesu Java? Jeśli tak to jak?
Odpowiedzi:
Tak! Oto jak to skonfigurować.
Utwórz konfigurację zdalnego uruchamiania:
Powyższa konfiguracja zapewnia trzy pola tylko do odczytu. Są to opcje, które każą JVM otworzyć port 5005 do zdalnego debugowania podczas uruchamiania aplikacji. Dodaj odpowiednią do opcji JVM debugowanej aplikacji. Jednym ze sposobów, w jaki możesz to zrobić, byłoby:
export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
Zależy to jednak od sposobu uruchomienia aplikacji. Jeśli nie masz pewności, który z trzech dotyczy Ciebie, zacznij od pierwszego i przewiń listę, aż znajdziesz ten, który działa.
Możesz zmienić suspend=n
na, suspend=y
aby zmusić aplikację do czekania, aż połączysz się z IntelliJ przed jego uruchomieniem. Jest to pomocne, jeśli punkt przerwania, który chcesz trafić, pojawia się podczas uruchamiania aplikacji.
Uruchom aplikację w normalny sposób, a następnie w IntelliJ wybierz nową konfigurację i naciśnij „Debuguj”.
IntelliJ połączy się z JVM i zainicjuje zdalne debugowanie.
Możesz teraz debugować aplikację, dodając punkty przerwania do kodu w razie potrzeby. Dane wyjściowe aplikacji będą nadal pojawiać się tam, gdzie wcześniej, ale punkty przerwania trafią w IntelliJ.
Remote
nie jest dostępny w wydaniu społecznościowym? Korzystam z wersji płatnej. Czy ktoś z edycją społeczności może potwierdzić?
System.out.println
IntelliJ podczas zdalnego debugowania?
Jest to możliwe, ale musisz dodać kilka flag JVM podczas uruchamiania aplikacji.
Musisz dodać konfigurację zdalnego debugowania: Edytuj konfigurację -> Zdalna.
Następnie w wyświetlonym oknie dialogowym znajdziesz parametry, które musisz dodać do wykonania programu, takie jak:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Następnie po uruchomieniu aplikacji możesz dołączyć debugger. Jeśli chcesz, aby aplikacja czekała na połączenie z debuggerem, po prostu zmień flagę zawieszenia na y ( suspend=y
)
w AndroidStudio lub pomysł
dodaj „Opcje VM” Konfiguracja
“-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005”
zapamiętaj „adres”
Używam również aplikacji GUI Tomcat (w moim przypadku: C: \ tomcat \ bin \ Tomcat9w.bin).
Przejdź do zakładki Java :
Ustaw właściwości Java, na przykład:
Maszyna wirtualna Java
C: \ Program Files \ Java \ jre-10.0.2 \ bin \ server \ jvm.dll
Maszyna wirtualna Java
C: \ tomcat \ bin \ bootstrap.jar; C: \ tomcat \ bin \ tomcat-juli.jar
Opcje 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 = transport = dt_socket, server = y, suspend = n, address = *: 8000
Opcje Java 9 :
--add-opens = java.base / java.lang = WSZYSTKO NIEZNAMIONE
--add-opens = java.base / java.io = WSZYSTKO NIEZNAMIONE
--add-opens = java.rmi / sun.rmi.transport = ALL-UNNAMED