Otklanjanje pogrešaka pomoću Eclipsea

1. Pregled

U ovom brzom vodiču vidjet ćemo kako ispraviti pogreške u Java programima pomoću Eclipse IDE-a.

2. Osnovni pojmovi

Eclipse ima veliku podršku za ispravljanje pogrešaka u aplikaciji. Vizualizira izvršenje korak po korak i pomaže nam otkriti bugove.

Da bismo demonstrirali značajke otklanjanja pogrešaka u Eclipseu, poslužit ćemo se primjerom programa PerfectSquareCounter. Ovaj program broji ukupne savršene kvadrate, pa čak i savršene kvadrate pod određenim brojem:

javna klasa PerfectSquareCounter {static int evenPerfectSquareNumbers = 0; javna statička void glavna (String [] args) {int i = 100; System.out.println ("Ukupni savršeni kvadrati:" + izračunaj Broj (i)); System.out.println ("Čak savršeni kvadrati:" + evenPerfectSquareNumbers); } javni statički int izračunCount (int i) {int perfectSquaresCount = 0; za (int broj = 1; broj <= i; broj ++) {if (isPerfectSquare (broj)) {perfectSquaresCount ++; if (broj% 2 == 0) {evenPerfectSquareNumbers ++; }}} return perfectSquaresCount; } privatni statički logički isPerfectSquare (int broj) {double sqrt = Math.sqrt (broj); povratak sqrt - Math.floor (sqrt) == 0; }}

2.1. Način za uklanjanje pogrešaka

Prvo, trebamo pokrenite Java program u Eclipseu u načinu ispravljanja pogrešaka. To se može postići na dva načina:

  • Desnom tipkom miša kliknite uređivač i odaberite Otklanjanje pogrešaka kao -> Java aplikacija (prikazano na donjem snimku zaslona)
  • Otklanjanje pogrešaka program s alatne trake (istaknuto na donjem snimku zaslona)

2.2. Točke prijeloma

Moramo definirati točke na kojima bi izvršavanje programa trebalo zastati radi istrage. To se nazivaju točke prekida i primjenjive su na metode. Oni se također mogu definirati bilo kada prije ili za vrijeme izvršenja.

U osnovi postoje 3 načina za dodavanje točaka prekida u program:

  • Desnom tipkom miša kliknite traku markera (okomito ravnalo) koja odgovara liniji i odaberite Toggle Breakpoint (prikazano na donjem snimku zaslona)
  • Pritisnite Ctrl + Shift + B na potrebnom retku dok ste u uredniku
  • Dvaput kliknite na traku s oznakama (okomito ravnalo) koja odgovara potrebnoj liniji

2.3. Kontrole protoka koda

Sad kad se program za pronalaženje pogrešaka zaustavi na zadanim točkama prekida, možemo nastaviti s daljnjim izvršavanjem.

Pretpostavimo da je program za pronalaženje pogrešaka trenutno postavljen prema donjem snimku zaslona, ​​na liniji 16:

Najčešće korištene opcije otklanjanja pogrešaka su:

  • Korak u (F5) - Ova operacija ulazi u metode koristi se u trenutnom retku (ako postoji); u suprotnom, prelazi se na sljedeći redak. U ovom će primjeru program za uklanjanje pogrešaka uzeti unutar metode isPerfectSquare ()
  • Prekoračiti (F6) - Ova operacija obrađuje trenutni redak i prelazi na sljedeći redak. U ovom primjeru ovo će izvršiti metodu isPerfectSquare () i prijeđite na sljedeći redak
  • Povratak koraka (F7) - Ova operacija završava trenutnu metodu i vraća nas natrag do metode pozivanja. Budući da u ovom slučaju imamo točku prekida u petlji, ona će i dalje biti unutar metode, inače bi se vratila na glavnu metodu
  • Životopis (F8) - Ova će se operacija jednostavno nastaviti s izvršenjem sve dok program ne završi osim ako ne pogodimo daljnju točku prekida

2.4. Perspektiva otklanjanja pogrešaka

Kada program pokrenemo u načinu ispravljanja pogrešaka, Eclipse će zatražiti opciju za prelazak u perspektivu uklanjanja pogrešaka. Perspektiva otklanjanja pogrešaka zbirka je nekih korisnih pogleda koji nam pomažu vizualizirati i stupiti u interakciju s programom za uklanjanje pogrešaka.

Također se u bilo kojem trenutku možemo ručno prebaciti na perspektivu otklanjanja pogrešaka.

Evo nekoliko najkorisnijih pogleda koje ovo sadrži:

  • Pogled za otklanjanje pogrešaka - Ovo prikazuje različite niti i tragove stoga poziva
  • Prikaz varijabli - Ovo pokazuje vrijednosti varijabli u bilo kojoj određenoj točki. Ako trebamo vidjeti statičke varijable, to moramo izričito navesti
  • Točke prijeloma - Ovo pokazuje različite točke prijelaza i nadzorne točke (koje ćemo vidjeti u nastavku)
  • Ljuska za otklanjanje pogrešaka - To nam omogućuje pisanje i procjenu prilagođenog koda tijekom uklanjanja pogrešaka (primjer je pokriven kasnije)

3. Tehnike

U ovom ćemo odjeljku proći kroz neke važne tehnike koje će nam pomoći da savladamo ispravljanje pogrešaka u Eclipseu.

3.1. Varijable

Vrijednosti varijabli možemo vidjeti tijekom izvršavanja u prikazu Variables. Da bismo vidjeli statičke varijable, možemo odabrati padajuću opciju Java -> Prikaži statičke varijable.

Korištenjem prikaza varijabli moguće je tijekom izvršavanja promijeniti bilo koju vrijednost u željenu vrijednost.

Na primjer, ako trebamo preskočiti nekoliko brojeva i izravno započeti s brojem 80, to bismo mogli učiniti promjenom vrijednosti varijable broj:

3.2. Inspekcija vrijednosti

Ako trebamo provjeriti vrijednost Java izraza ili izraza, možemo odabrati određeni izraz u uređivaču, kliknuti desnom tipkom miša i pregledati, kao što je prikazano u nastavku. Zgodan prečac je do pogoditi Ctrl + Shift + I na izrazu da se vidi vrijednost:

U slučaju da trebamo trajno pregledati ovaj izraz, možemo kliknuti desnom tipkom miša i gledati. Sada se to dodaje u prikaz Izrazi i vrijednost ovog izraza može se vidjeti za različite pokrete.

3.3. Ljuska za otklanjanje pogrešaka

U kontekstu sesije otklanjanja pogrešaka, možemo pisati i pokretati prilagođeni kôd za procjenu mogućnosti. To se radi u ljusci za otklanjanje pogrešaka.

Na primjer, ako trebamo unakrsno provjeriti ispravnost sqrt funkcionalnost, mogli bismo to učiniti u ljusci za otklanjanje pogrešaka. Na kodu, Desnom tipkom miša kliknite -> Pregledaj da biste vidjeli vrijednost:

3.4. Uvjetne točke prekida

Bit će slučajeva u kojima želimo ispraviti pogreške samo za određene uvjete. To možemo postići dodavanjem uvjeta točki prekida na jedan od dva načina:

  • Desnom tipkom miša kliknite točku prekida i odaberite Svojstva točke prekida
  • U prikazu točke prekida odaberite točku prekida i navedite stanje

Na primjer, možemo odrediti točku prekida za obustavu izvršenja samo ako broj jednako je 10:

3.5. Točke nadzora

Štotočke prijeloma su za metode, točke nadzora su za varijable na razini klase. U ovom trenutnom primjeru, točka prekida na evenPerfectSquareNumbers deklaracija naziva se stražarskom točkom. Sada će program za pronalaženje pogrešaka zaustaviti izvršenje svaki put kad se polju pristupi ili se promijeni na točki nadzora.

Ovo je zadano ponašanje, koje se može promijeniti u svojstvima nadzorne točke.

U ovom primjeru program za uklanjanje pogrešaka zaustavit će izvršenje svaki put kad je savršeni kvadrat paran broj:

3.6. Okidačke bodove

Pretpostavimo da rješavamo složene probleme u aplikaciji s ogromnom količinom izvornog koda. Program za ispravljanje pogrešaka nastavit će zaustavljati protok zbog raštrkanih točaka prekida.

Kad je točka prekida označena kao točka okidača, to znači da će ostatak točaka prekida biti omogućen samo ako je ta točka prekida pogođena.

Na primjer, na snimci zaslona u nastavku, točka prekida uključena isPerfectSquare () treba biti pogođen za svaku iteraciju u petlji. Međutim, odredili smo točku prekida izračunajZbroj () metoda kao okidačka točka, zajedno s uvjetom.

Dakle, kada broj ponavljanja dosegne 10, to će pokrenuti ostatak točaka prekida. Stoga, od sada, ako je prijelomna točka nadalje isPerfectSquare () ako se pogodi, izvršenje će se obustaviti:

3.7. Daljinsko ispravljanje pogrešaka

Napokon, ako se aplikacija izvodi izvan Eclipsea, i dalje možemo koristiti sve gore navedene funkcionalnosti, pod uvjetom da udaljena aplikacija omogućuje otklanjanje pogrešaka. Iz Eclipsea bismo odabrali Otklanjanje pogrešaka kao udaljeni Java program.

4. Zaključak

U ovom kratkom vodiču vidjeli smo osnove i različite tehnike uklanjanja pogrešaka u programima Eclipse IDE.

Kao i uvijek, izvorni kod korišten u ovoj vježbi dostupan je na GitHubu.