Ladenie pomocou Eclipse

1. Prehľad

V tejto rýchlej príručke sa dozvieme, ako ladiť programy Java pomocou Eclipse IDE.

2. Základné pojmy

Eclipse má veľkú podporu pre ladenie aplikácie. Vizualizuje postupné vykonávanie a pomáha nám odhaľovať chyby.

Na demonštráciu funkcií ladenia v Eclipse použijeme ukážkový program PerfectSquareCounter. Tento program počíta celkové dokonalé štvorce a dokonca perfektné štvorce pod daným počtom:

verejná trieda PerfectSquareCounter {static int evenPerfectSquareNumbers = 0; public static void main (String [] args) {int i = 100; System.out.println ("Celkom dokonalých štvorcov:" + CalcCount (i)); System.out.println ("Rovnomerné štvorce:" + evenPerfectSquareNumbers); } verejné statické int countCount (int i) {int perfectSquaresCount = 0; for (int number = 1; number <= i; number ++) {if (isPerfectSquare (number)) {perfectSquaresCount ++; if (number% 2 == 0) {evenPerfectSquareNumbers ++; }}} vrátiť perfectSquaresCount; } private static boolean isPerfectSquare (int number) {double sqrt = Math.sqrt (number); návrat sqrt - Math.floor (sqrt) == 0; }}

2.1. Režim ladenia

Najprv musíme spustite program Java v rámci Eclipse v režime ladenia. To sa dá dosiahnuť dvoma spôsobmi:

  • Pravým tlačidlom myši kliknite na editor a vyberte Debug As -> Java Aplikácia (zobrazené na obrázku nižšie)
  • Debug program z panela nástrojov (zvýraznený na obrázku nižšie)

2.2. Hraničné hodnoty

Musíme definujte body, v ktorých by sa malo pozastaviť vykonávanie programu na prešetrenie. Nazývajú sa hraničné hodnoty a sú použiteľné pre metódy. Môžu byť tiež definované kedykoľvek pred alebo počas vykonávania.

V zásade existujú 3 spôsoby, ako do programu pridať body prerušenia:

  • Pravým tlačidlom myši kliknite na lištu značiek (zvislé pravítko) zodpovedajúcu riadku a vyberte možnosť Prepnúť bod prerušenia (zobrazené na obrázku nižšie).
  • Stlačte Ctrl + Shift + B na potrebnom riadku v editore
  • Dvakrát kliknite na lištu značiek (zvislé pravítko) zodpovedajúcu potrebnej čiare

2.3. Ovládanie toku kódu

Teraz, keď sa debugger zastaví na daných hraničných bodoch, môžeme pokračovať v ďalšom vykonávaní.

Predpokladajme, že debugger je momentálne umiestnený podľa snímky obrazovky nižšie, na riadku 16:

Najčastejšie používané možnosti ladenia sú:

  • Step Into (F5) - Táto operácia je súčasťou metód použité v aktuálnom riadku (ak existuje); inak prejde na ďalší riadok. V tomto príklade sa použije ladiaci program vo vnútri metódy isPerfectSquare ()
  • Prekročiť (F6) - Táto operácia spracuje aktuálny riadok a prejde na ďalší riadok. V tomto príklade sa tým vykoná metóda isPerfectSquare () a pokračujte na ďalší riadok
  • Krokový návrat (F7) - Táto operácia dokončí aktuálnu metódu a vráti nás späť k metóde volania. Pretože v tomto prípade máme v slučke bod prerušenia, bude stále v rámci metódy, inak by sa vrátila späť k hlavnej metóde
  • Obnoviť (F8) - Táto operácia bude jednoducho pokračovať v vykonávaní, kým sa program neskončí pokiaľ nenarazíme na ďalší bod zlomu

2.4. Perspektíva ladenia

Keď spustíme program v režime ladenia, Eclipse vás vyzve s možnosťou prepnúť do perspektívy ladenia. Perspektíva ladenia je zbierka niektorých užitočných zobrazení, ktoré nám pomáhajú vizualizovať a pracovať s ladiacim programom.

K perspektíve ladenia môžeme tiež kedykoľvek prepnúť manuálne.

Tu uvádzame niektoré z najužitočnejších pohľadov, ktoré obsahuje:

  • Zobraziť ladenie - To ukazuje rôzne vlákna a stopy zásobníkov hovorov
  • Zobrazenie premenných - Zobrazujú sa hodnoty premenných v danom bode. Ak potrebujeme vidieť statické premenné, musíme to výslovne špecifikovať
  • Hraničné hodnoty - To ukazuje rôzne body prerušenia a body sledovania (ktoré uvidíme nižšie)
  • Debug Shell - To nám umožňuje písať a vyhodnocovať vlastný kód počas ladenia (príklad bude uvedený neskôr).

3. Techniky

V tejto časti si prejdeme niektoré dôležité techniky, ktoré nám pomôžu zvládnuť ladenie v Eclipse.

3.1. Premenné

Hodnoty premenných môžeme vidieť počas vykonávania v zobrazení Premenné. Aby sme videli statické premenné, môžeme zvoliť rozbaľovaciu možnosť Java -> Zobraziť statické premenné.

Pomocou zobrazenia premenných je možné počas vykonávania zmeniť ľubovoľnú hodnotu na požadovanú hodnotu.

Napríklad, ak potrebujeme preskočiť niekoľko čísel a začať priamo s číslom 80, môžeme to urobiť zmenou hodnoty premennej číslo:

3.2. Kontrola hodnôt

Ak potrebujeme skontrolovať hodnotu výrazu alebo príkazu Java, môžeme zvoliť konkrétny výraz v editore, kliknúť pravým tlačidlom myši a skontrolovať, ako je uvedené nižšie. Šikovná skratka je k trafiť Ctrl + Shift + I na výraze vidieť hodnotu:

Pre prípad potreby natrvalo skontrolovať tento výraz, môžeme naň kliknúť pravým tlačidlom myši a pozerať ho. Teraz sa to pridá do zobrazenia Expressions a hodnota tohto výrazu je viditeľná pre rôzne behy.

3.3. Debug Shell

V súvislosti s reláciou ladenia môžeme napísať a spustiť vlastný kód na vyhodnotenie možností. To sa deje v Debug Shell.

Napríklad, ak potrebujeme krížovú kontrolu správnosti štvorcový funkcionalitu, mohli by sme to urobiť v Debug Shell. Na kóde Kliknite pravým tlačidlom myši -> Skontrolovať zobraziť hodnotu:

3.4. Podmienené hraničné hodnoty

Vyskytnú sa prípady, v ktorých chceme ladiť iba za konkrétnych podmienok. To môžeme dosiahnuť pridaním podmienok k bodu zlomu jedným z dvoch spôsobov:

  • Pravým tlačidlom myši kliknite na bod prerušenia a vyberte položku Vlastnosti bodu prerušenia
  • V zobrazení Bod prerušenia vyberte bod prerušenia a zadajte podmienku

Napríklad môžeme určiť bod prerušenia, aby sme pozastavili vykonávanie, iba ak číslo sa rovná 10:

3.5. Pozorovacie body

Čobody prerušenia sú pre metódy, body sledovania sú pre premenné na úrovni triedy. V tomto aktuálnom príklade je bod prerušenia zapnutý evenPerfectSquareNumbers vyhlásenie sa nazýva strážna stráž. Teraz debugger pozastaví vykonávanie zakaždým, keď sa v strážnom bode pristupuje alebo upravuje pole.

Toto je predvolené správanie, ktoré sa dá zmeniť vo vlastnostiach sledovaného bodu.

V tomto príklade debugger zastaví vykonávanie zakaždým, keď je dokonalý štvorec párnym číslom:

3.6. Spúšťacie body

Predpokladajme, že ladíme komplexný problém v aplikácii s veľkým množstvom zdrojového kódu. Debugger bude naďalej pozastavovať tok kvôli rozptýleným bodom prerušenia.

Ak je bod prerušenia označený ako spúšťací bod, znamená to, že zvyšok bodov prerušenia bude povolený, iba ak dôjde k zásahu do tohto bodu prerušenia.

Napríklad na snímke obrazovky nižšie je bod prerušenia zapnutý isPerfectSquare () má byť hit pre každú iteráciu v cykle. Avšak určili sme hraničný bod countCount () metóda ako spúšťací bod spolu s podmienkou.

Keď teda počet iterácií dosiahne 10, spustí sa zvyšok zlomových bodov. Preto odteraz, ak bude bod zlomu zapnutý isPerfectSquare () je zasiahnutý, poprava bude pozastavená:

3.7. Vzdialené ladenie

Nakoniec, ak je aplikácia spustená mimo Eclipse, môžeme stále používať všetky vyššie uvedené funkcie za predpokladu, že vzdialená aplikácia umožňuje ladenie. Z Eclipse by sme vybrali Ladiť ako vzdialenú aplikáciu Java.

4. Záver

V tejto rýchlej príručke sme videli základy a rôzne techniky ladenia programov v Eclipse IDE.

Ako vždy, zdrojový kód použitý v tomto cvičení je k dispozícii na GitHub.


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