Diaľkové ladenie pomocou IntelliJ IDEA

1. Úvod

Vzdialené ladenie umožňuje vývojárom diagnostikovať jedinečné chyby na serveri alebo v inom procese. Poskytuje prostriedky na vysledovanie týchto nepríjemných chýb za behu a identifikáciu úzkych miest výkonu a záchytov zdrojov.

V tomto tutoriáli sa pozrieme na vzdialené ladenie pomocou JetBrains IntelliJ IDEA. Poďme si najskôr pripraviť našu vzorovú aplikáciu zmenou JVM.

2. Nakonfigurujte JVM

Na jednoduché pripojenie a pridanie zarážok k pravidelne naplánovanej úlohe použijeme vzorovú aplikáciu Spring scheduler.

Ďalej IntelliJ IDEA poskytuje naše parametre JVM ako súčasť konfigurácie:

-agentlib: jdwp = transport = dt_socket, server = y, pozastaviť = n, adresa = *: 5005

2.1. Parametre JVM

Okrem konfigurácie JDWP (Java Debug Wire Protocol) - jdwp = transport = dt_socket - vidíme server, pozastaviťa adresa parametre.

The server parameter konfiguruje JVM ako cieľ pre náš debugger. The pozastaviť parameter povie JVM, aby pred spustením počkal na pripojenie klienta ladiaceho programu. Nakoniec adresa parameter používa zástupný znak hostiteľa a deklarovaný port.

Poďme teda zostaviť aplikáciu plánovača:

mvn čistý balíček

A teraz spustíme aplikáciu vrátane -agentlib: jdwp parameter:

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

Otvorte ľubovoľný terminál a spustite príkaz. Po spustení našej aplikácie prejdime teraz na IntelliJ.

3. Spustite konfiguráciu v IntelliJ IDEA

Ďalej v IntelliJ vytvoríme novú konfiguráciu spustenia pre vzdialené ladenie:

Teraz, keď je naša aplikácia spustená, začnime reláciu vzdialeného ladenia kliknutím na ikonu Debug tlačidlo.

4. Vzdialené ladenie

Ďalej otvárame ScheduleTask súbor a umiestnite bod prerušenia na riadok 36, ktorý je zobrazený tu:

public void reportCurrentTime () {log.info ("Teraz je čas {}", dateFormat.format (nový Date ())); }

Pretože sa úloha spúšťa každých päť sekúnd, zastaví sa čoskoro po jej pridaní. Vďaka tomu môžeme teraz prejsť celou aplikáciou.

V prípade problémov so spustením aplikácie meníme pozastaviť označiť n a umiestniť bod prerušenia do hlavný metóda Aplikácia.

4.1. Obmedzenia

Pri vzdialenom ladení nás niekedy protokolovanie a výstup mätú. Protokoly sa nebudú odosielať do konzoly IDE, takže je možné použiť externý protokolový súbor a namapovať ho do IDE, aby sa zaistila robustnejšia ladiaca schopnosť.

Pamätajte tiež, že zatiaľ čo vzdialené ladenie je veľmi mocný nástroj, produkčné prostredie nie je vhodný cieľ na ladenie.

5. Záver

Ako sme sa venovali v tomto článku, vzdialené ladenie pomocou IntelliJ sa dá ľahko nastaviť a používať v niekoľkých krátkych krokoch.

Pozreli sme sa na to, ako nakonfigurovať našu aplikáciu JVM na ladenie, ako aj na niektoré obmedzenia tohto dôležitého nástroja v našom súbore nástrojov pre vývojárov.

Ukážkovú aplikáciu nájdete na GitHub.


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