Ekstern feilsøking med IntelliJ IDEA

1. Introduksjon

Ekstern feilsøking gir utviklere muligheten til å diagnostisere unike feil på en server eller en annen prosess. Det gir midler til å spore opp de irriterende kjøretidsfeilene og identifisere ytelsesflaskehalser og ressursvask.

I denne veiledningen tar vi en titt på ekstern feilsøking ved hjelp av JetBrains IntelliJ IDEA. La oss forberede prøvesøknaden vår først ved å endre JVM.

2. Konfigurer JVM

Vi bruker et eksempelprogram for vårplanlegger for å enkelt koble til og legge til brytepunkter i en regelmessig planlagt oppgave.

Dessuten, IntelliJ IDEA gir våre JVM-parametere som en del av konfigurasjonen:

-agentlib: jdwp = transport = dt_socket, server = y, suspend = n, adresse = *: 5005

2.1. JVM-parametere

Foruten Java Debug Wire Protocol (JDWP) -konfigurasjonen - jdwp = transport = dt_socket - vi ser server, utsette, og adresse parametere.

De server parameter konfigurerer JVM som målet for feilsøkingsprogrammet vårt. De utsette parameter forteller JVM å vente på at en feilsøkingsklient kobles til før oppstart. Til slutt, adresse parameteren bruker en jokertegn-vert og en deklarert port.

Så la oss bygge planleggingsprogrammet:

mvn ren pakke

Og la oss starte opp applikasjonen, inkludert -agentlib: jdwp parameter:

java -jar -agentlib: jdwp = transport = dt_socket, server = y, suspend = n, adresse = *: 5005 \ target / gs-scheduling-tasks-0.1.0.jar

Åpne en hvilken som helst terminal og kjør kommandoen. Med applikasjonen vår startet opp, la oss nå bytte til IntelliJ.

3. Kjør konfigurasjon i IntelliJ IDEA

Deretter, i IntelliJ, oppretter vi en ny Run Configuration for ekstern feilsøking:

Nå som applikasjonen vår kjører, la oss starte den eksterne feilsøkingsøkten ved å klikke på Feilsøk knapp.

4. Fjern feilsøking

Deretter åpner vi ScheduleTask fil og legg et bruddpunkt på linje 36 vist her:

public void reportCurrentTime () {log.info ("Tiden er nå {}", dateFormat.format (ny dato ())); }

Siden oppgaven utføres hvert femte sekund, vil den stoppe like etter at den er lagt til. Som et resultat kan vi nå gå gjennom hele applikasjonen.

For applikasjonsoppstartsproblemer endrer vi utsette flagg til n og plasser et bruddpunkt i hoved- Metode av Applikasjon.

4.1. Begrensninger

Noen ganger forvirrer logging og utgang oss når vi fjerner feilsøking. Loggene blir ikke sendt til IDE-konsollen, så en ekstern loggfil kan brukes og kartlegges i IDE for mer robust feilsøking.

Husk også at mens ekstern feilsøking er et veldig kraftig verktøy, et produksjonsmiljø er ikke et passende mål for feilsøking.

5. Konklusjon

Som vi dekket i denne artikkelen, er det enkelt å sette opp og bruke fjernfeilsøking med IntelliJ i noen få korte trinn.

Vi så på hvordan vi konfigurerer applikasjonen JVM for feilsøking, samt noen begrensninger for dette viktige verktøyet i verktøykassen vår.

Eksempelapplikasjonen finner du på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found