Daljinsko ispravljanje pogrešaka s IntelliJ IDEA

1. Uvod

Daljinsko ispravljanje pogrešaka pruža programerima mogućnost dijagnosticiranja jedinstvenih pogrešaka na poslužitelju ili nekom drugom procesu. Pruža sredstva za pronalaženje dosadnih runtime grešaka i identificiranje uskih grla u izvedbi i suzbijanja resursa.

U ovom uputstvu pogledat ćemo daljinsko otklanjanje pogrešaka pomoću JetBrains IntelliJ IDEA. Prvo pripremimo naš uzorak tako što ćemo izmijeniti JVM.

2. Konfigurirajte JVM

Upotrijebit ćemo uzorak aplikacije za planiranje Spring za jednostavno povezivanje i dodavanje točaka prekida u redovito planirani zadatak.

Nadalje, IntelliJ IDEA pruža naše JVM parametre kao dio konfiguracije:

-agentlib: jdwp = transport = dt_socket, poslužitelj = y, suspend = n, adresa = *: 5005

2.1. JVM parametri

Osim konfiguracije Java Debug Wire Protocol (JDWP) - jdwp = transport = dt_socket - vidimo poslužitelju, obustaviti, i adresa parametri.

The poslužitelju parametar konfigurira JVM kao cilj za naš program za ispravljanje pogrešaka. The obustaviti parametar govori JVM-u da čeka pokretanje programa za ispravljanje pogrešaka klijenta prije pokretanja. Napokon, adresa parametar koristi zamjenski host i deklarirani port.

Dakle, izradimo aplikaciju planera:

mvn čist paket

A sada pokrenimo aplikaciju, uključujući -agentlib: jdwp parametar:

java -jar -agentlib: jdwp = transport = dt_socket, poslužitelj = y, suspend = n, adresa = *: 5005 \ target / gs-scheduling-tasks-0.1.0.jar

Otvorite bilo koji terminal i pokrenite naredbu. Nakon pokretanja naše aplikacije, prijeđimo sada na IntelliJ.

3. Pokrenite Konfiguracija u IntelliJ IDEA

Dalje, u IntelliJ-u izrađujemo novu konfiguraciju pokretanja za daljinsko ispravljanje pogrešaka:

Sada kada je naša aplikacija pokrenuta, započnimo sesiju daljinskog otklanjanja pogrešaka klikom na Otklanjanje pogrešaka dugme.

4. Daljinsko ispravljanje pogrešaka

Dalje, otvaramo ScheduleTask datoteku i stavite točku prekida u redak 36 prikazan ovdje:

public void reportCurrentTime () {log.info ("Vrijeme je sada {}", dateFormat.format (novi datum ())); }

Budući da se zadatak izvršava svakih pet sekundi, zaustavit će se ubrzo nakon dodavanja. Kao rezultat, sada možemo proći kroz cijelu aplikaciju.

Za probleme s pokretanjem aplikacije mijenjamo obustaviti zastava do n i stavite točku prekida u glavni metoda Primjena.

4.1. Ograničenja

Ponekad nas zapisivanje i izlaz zbunjuju prilikom daljinskog otklanjanja pogrešaka. Evidencije se neće slati na IDE konzolu, tako da se vanjska datoteka dnevnika može koristiti i preslikati u IDE radi robusnije sposobnosti uklanjanja pogrešaka.

Također imajte na umu da iako je daljinsko otklanjanje pogrešaka vrlo moćan alat, proizvodno okruženje nije prikladna meta za otklanjanje pogrešaka.

5. Zaključak

Kao što smo obradili u ovom članku, daljinsko otklanjanje pogrešaka s IntelliJ-om jednostavno je postaviti i koristiti u nekoliko kratkih koraka.

Pogledali smo kako konfigurirati našu aplikaciju JVM za uklanjanje pogrešaka, kao i neka ograničenja ovog važnog alata u našem alatu za programere.

Uzorak aplikacije možete pronaći na GitHubu.