Feilsøking med formørkelse

1. Oversikt

I denne hurtigveiledningen ser vi hvordan du feilsøker Java-programmer ved hjelp av Eclipse IDE.

2. Grunnleggende konsepter

Eclipse har god støtte for feilsøking av et program. Den visualiserer trinnvis kjøring og hjelper oss med å avdekke feil.

For å demonstrere feilsøkingsfunksjonene i Eclipse, bruker vi et eksempelprogram PerfectSquareCounter. Dette programmet teller de totale perfekte rutene og til og med perfekte rutene under et gitt tall:

offentlig klasse PerfectSquareCounter {static int evenPerfectSquareNumbers = 0; public static void main (String [] args) {int i = 100; System.out.println ("Total Perfect Squares:" + calcCount (i)); System.out.println ("Even Perfect Squares:" + evenPerfectSquareNumbers); } offentlig statisk int beregneCount (int i) {int perfectSquaresCount = 0; for (int number = 1; number <= i; number ++) {if (isPerfectSquare (number)) {perfectSquaresCount ++; hvis (nummer% 2 == 0) {evenPerfectSquareNumbers ++; }}} returner perfectSquaresCount; } privat statisk boolsk isPerfectSquare (int-nummer) {double sqrt = Math.sqrt (number); retur sqrt - Math.floor (sqrt) == 0; }}

2.1. Feilsøkingsmodus

Først må vi start Java-programmet i Eclipse i feilsøkingsmodus. Dette kan oppnås på to måter:

  • Høyreklikk på redigeringsprogrammet og velg Feilsøk som -> Java-applikasjon (vist på skjermbildet nedenfor)
  • Feilsøk programmet fra verktøylinjen (fremhevet i skjermbildet nedenfor)

2.2. Breakpoints

Vi må definere punktene der programkjøringen skal pause for etterforskning. Disse kalles bruddpunkter og er gjeldende for metoder. De kan også defineres når som helst før eller under utførelse.

I utgangspunktet er det 3 måter å legge til punkter i programmet:

  • Høyreklikk på markørfeltet (vertikal linjal) som tilsvarer linjen, og velg Bytt brytpunkt (vist på skjermbildet nedenfor)
  • trykk Ctrl + Skift + B på den nødvendige linjen mens du er i redaktøren
  • Dobbeltklikk på markeringsfeltet (vertikal linjal) som tilsvarer den nødvendige linjen

2.3. Code-Flow Controls

Nå som feilsøkingsprogrammet stopper ved de gitte brytpunktene, kan vi fortsette med videre kjøring.

La oss anta at feilsøkingsprogrammet for øyeblikket er plassert i henhold til skjermbildet nedenfor, på linje 16:

De mest brukte feilsøkingsalternativene er:

  • Gå inn i (F5) - Denne operasjonen går inn i metodene brukt i gjeldende linje (hvis noen); ellers fortsetter den til neste linje. I dette eksemplet vil det ta feilsøkingsprogrammet inne i metoden isPerfectSquare ()
  • Step Over (F6) - Denne operasjonen behandler den nåværende linjen og fortsetter til neste linje. I dette eksemplet vil dette utføre metoden isPerfectSquare () og fortsett til neste linje
  • Step Return (F7) - Denne operasjonen fullfører den nåværende metoden og tar oss tilbake til anropsmetoden. Siden i dette tilfellet har vi et bruddpunkt i løkken, det vil fortsatt være innenfor metoden, ellers vil det gå tilbake til hovedmetoden
  • Gjenoppta (F8) - Denne operasjonen vil bare fortsette med utførelsen til programmet avsluttes med mindre vi treffer noe ytterligere bruddpunkt

2.4. Feilsøk perspektiv

Når vi starter programmet i feilsøkingsmodus, vil Eclipse be om et alternativ for å bytte til feilsøkingsperspektivet. Feilsøkingsperspektivet er en samling av nyttige synspunkter som hjelper oss å visualisere og samhandle med feilsøkingsprogrammet.

Vi kan også når som helst bytte til feilsøkingsperspektivet manuelt.

Her er noen av de mest nyttige visningene som dette inneholder:

  • Feilsøk visning - Dette viser de forskjellige trådene og samtalestakksporene
  • Visning av variabler - Dette viser verdiene til variablene på et gitt punkt. Hvis vi trenger å se de statiske variablene, må vi eksplisitt spesifisere det
  • Breakpoints - Dette viser de forskjellige brytepunktene og overvåkningspunktene (som vi vil se nedenfor)
  • Feilsøk Shell - Dette lar oss skrive og evaluere tilpasset kode mens vi feilsøker (et eksempel blir dekket senere)

3. Teknikker

I denne delen vil vi gå gjennom noen viktige teknikker som vil hjelpe oss å mestre feilsøking i Eclipse.

3.1. Variabler

Vi kan se verdiene til variabler under utførelsen under variablevisningen. For å se de statiske variablene, kan vi velge rullegardinalternativet Java -> Vis statiske variabler.

Ved hjelp av variabelvisningen er det mulig å endre hvilken som helst verdi til ønsket verdi under utførelsen.

Hvis vi for eksempel trenger å hoppe over noen tall og direkte starte med tallet 80, kan vi gjøre det ved å endre verdien på variabelen Nummer:

3.2. Inspisere verdier

Hvis vi trenger å inspisere verdien av et Java-uttrykk eller -uttrykk, kan vi velge det bestemte uttrykket i redigeringsprogrammet, høyreklikke og inspisere, som vist nedenfor. En praktisk snarvei er å truffet Ctrl + Shift + I på uttrykket for å se verdien:

I tilfelle vi trenger det inspisere dette uttrykket permanent, kan vi høyreklikke og se. Nå blir dette lagt til i uttrykkvisningen, og verdien av dette uttrykket kan sees for forskjellige løp.

3.3. Feilsøk Shell

I sammenheng med feilsøkingsøkten, vi kan skrive og kjøre tilpasset kode for å evaluere muligheter. Dette gjøres i Debug Shell.

For eksempel hvis vi trenger å kryssjekke riktigheten av sqrt funksjonalitet, kan vi gjøre det i Debug Shell. På koden, Høyreklikk -> Inspiser for å se verdien:

3.4. Betingede bruddpunkter

Det vil være tilfeller der vi bare vil feilsøke for spesifikke forhold. Vi kan oppnå dette ved å legge forholdene til et brytpunkt på en av to måter:

  • Høyreklikk på brytepunktet og velg Breakpoint Properties
  • I Breakpoint-visning velger du breakpoint og spesifiserer tilstanden

For eksempel kan vi spesifisere brytepunktet for å suspendere kjøringen bare hvis Nummer er lik 10:

3.5. Vaktpunkter

Hvabreakpoints er for metoder, watchpoints er for variabler på klassenivå. I dette gjeldende eksemplet er brytpunktet på evenPerfectSquareNumbers erklæring kalles et overvåkingspunkt. Nå vil feilsøkingsprogrammet stoppe utførelsen hver gang felt blir åpnet eller endret på et overvåkingspunkt.

Dette er standard oppførsel, som kan endres i overvåkingsstedets egenskaper.

I dette eksemplet vil feilsøkingsprogrammet stoppe utførelsen hver gang et perfekt kvadrat er et partall:

3.6. Utløserpoeng

La oss anta at vi feilsøker et komplekst problem i et program med en enorm mengde kildekode. Feilsøkingsprogrammet vil fortsette å suspendere flyten på grunn av spredte bruddpunkter.

Når et brytpunkt er merket som et triggerpunkt, betyr det at resten av brytepunktene bare blir aktivert hvis dette brytpunktet treffes.

For eksempel, i skjermbildet nedenfor, er brytpunktet på isPerfectSquare () antas å bli truffet for hver iterasjon i løkken. Vi har imidlertid spesifisert bruddpunktet på countCount () metode som utløserpunkt, sammen med en tilstand.

Så når iterasjonstallet når 10, vil dette utløse resten av brytepunktene. Derfor, fra nå av, hvis brytpunktet på isPerfectSquare () er truffet, vil henrettelsen bli suspendert:

3.7. Ekstern feilsøking

Til slutt, hvis applikasjonen kjører utenfor Eclipse, kan vi fortsatt bruke alle funksjonene ovenfor, forutsatt at den eksterne applikasjonen tillater feilsøking. Fra formørkelse ville vi velge Feilsøk som eksternt Java-program.

4. Konklusjon

I denne hurtigveiledningen har vi sett det grunnleggende og forskjellige teknikker for feilsøkingsprogrammer i Eclipse IDE.

Som alltid er kildekoden som brukes i denne øvelsen, tilgjengelig på GitHub.


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