Távoli hibakeresés az IntelliJ IDEA segítségével

1. Bemutatkozás

A távoli hibakeresés lehetővé teszi a fejlesztők számára az egyedi hibák diagnosztizálását egy szerveren vagy egy másik folyamaton. Ez biztosítja az eszközöket a bosszantó futásidejű hibák felkutatására, valamint a teljesítmény szűk keresztmetszeteinek és az erőforrások leküzdésének azonosítására.

Ebben az oktatóanyagban a távoli hibakeresést vesszük szemügyre a JetBrains IntelliJ IDEA segítségével. Először készítsük el a minta alkalmazásunkat a JVM módosításával.

2. Konfigurálja a JVM-et

A Spring Scheduler mintaalkalmazás segítségével könnyedén összekapcsolhatjuk és hozzáadhatunk töréspontokat egy rendszeresen ütemezett feladathoz.

Továbbá, Az IntelliJ IDEA biztosítja a JVM paramétereinket a konfiguráció részeként:

-agentlib: jdwp = transport = dt_socket, szerver = y, suspend = n, address = *: 5005

2.1. JVM paraméterek

A Java Debug Wire Protocol (JDWP) konfiguráció mellett - jdwp = szállítás = dt_socket - látjuk a szerver, függessze fel, és cím paraméterek.

A szerver paraméter a JVM-et konfigurálja a hibakeresőnk célpontjául. A függessze fel A paraméter megmondja a JVM-nek, hogy az indítás előtt várja meg, amíg a hibakereső ügyfél csatlakozik. Végül a cím paraméter helyettesítő állomást és deklarált portot használ.

Tehát készítsük el az ütemező alkalmazást:

mvn tiszta csomag

Most pedig indítsuk el az alkalmazást, beleértve a -agentlib: jdwp paraméter:

java -jar -agentlib: jdwp = transport = dt_socket, szerver = y, suspend = n, address = *: 5005 \ target / gs-scheduling-task-0.1.0.jar

Nyissa meg bármelyik terminált, és futtassa a parancsot. Az alkalmazásunk elindításával most térjünk át az IntelliJ-re.

3. Futtassa a konfigurációt az IntelliJ IDEA alkalmazásban

Ezután az IntelliJ alkalmazásban létrehozunk egy új futtatási konfigurációt a távoli hibakereséshez:

Most, hogy alkalmazásunk fut, indítsuk el a távoli hibakeresési munkamenetet a gombra kattintva Hibakeresés gomb.

4. Távoli hibakeresés

Ezután kinyitjuk a ScheduleTask fájl és helyezzen el egy töréspontot az itt látható 36. sorban:

public void reportCurrentTime () {log.info ("Az idő most {}", dateFormat.format (új Dátum ())); }

Mivel a feladat öt másodpercenként fut, a hozzáadás után hamarosan leáll. Ennek eredményeként most áttekinthetjük a teljes alkalmazást.

Az alkalmazás indításával kapcsolatos problémák esetén megváltoztatjuk a függessze fel zászló to n és helyezzen töréspontot a fő- a metódusa Alkalmazás.

4.1. Korlátozások

Néha a naplózás és a kimenet összekever minket a távoli hibakeresés során. A naplók nem kerülnek elküldésre az IDE-konzolra, így egy külső naplófájl használható és hozzárendelhető az IDE-hez a robusztusabb hibakeresési képesség érdekében.

Ne feledje, hogy bár a távoli hibakeresés nagyon hatékony eszköz, a termelési környezet nem megfelelő célpont a hibakereséshez.

5. Következtetés

Amint ebben a cikkben kitértünk rá, az IntelliJ távoli hibakeresése könnyen beállítható és használható néhány rövid lépésben.

Megvizsgáltuk, hogyan konfigurálhatjuk az alkalmazás JVM-jét a hibakeresésre, valamint a fontos eszköz néhány korlátozását a fejlesztői eszköztárban.

A minta alkalmazás megtalálható a GitHub oldalon.