Kursinnhold
Java OOP
Java OOP
Feilsøker
Hva er en debugger?
En debugger er et verktøy som hjelper deg å gå gjennom koden din steg for steg. Vi kan pause kjøringen av koden på et bestemt punkt og starte feilsøkingsmodus for å se hvordan koden vår fungerer. For å gjøre dette må vi sette en markør (breakpoint) på linjen der vi ønsker å pause.
Vi har en kode som skal beregne summen av tall fra én til ti, inkludert. Resultatet skal være 55
, men vi får 45
som svar. La oss sette et breakpoint i starten av løkken for å forstå hvorfor svaret ikke stemmer. For å gjøre dette må du klikke med venstre museknapp på linjenummeret, og en rød markør vil vises der.
Her er koden fra skjermbildet, omskrevet for bedre lesbarhet og klarhet:
Main.java
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int result = 0; for(int i = 0; i < 10; i++) { result += 1; System.out.println(result); } } }
Verktøy i feilsøkingsmodus
La oss kort se på hvordan man arbeider med feilsøkeren og hvilke verktøy som er tilgjengelige i den.
Step Over: Med denne knappen kan vi fortsette kodeutførelsen én linje om gangen. Når den trykkes, vil feilsøkeren utføre den nåværende linjen og gå videre til neste, og deretter stoppe igjen;
Step Into: Med denne knappen kan vi gå inn i utførelsen av en metode. I vårt eksempel finnes det ingen metode, men hvis det hadde vært en, ville vi kunne gå inn i den og se hva som skjer der;
Step Out: Denne knappen er det motsatte av den forrige. Den lar oss gå ut av utførelsen av en metode eller en løkke;
Vi kan se verdiene til variablene i vinduet nederst eller ved siden av disse variablene. Vi kan tydelig se verdien til variabelen
result
, som i utgangspunktet er null.
Iterasjon gjennom koden
For å iterere, klikker vi på "Step Over"-knappen. Vi går inn i for
-løkka, og verdien til variabelen i
vises, som er opprettet inne i for
-løkka. Opprinnelig setter vi denne variabelen til null.
Deretter klikker vi på "Step Over" flere ganger for å fullføre én iterasjon og går til konsollen for å se om noe skrives ut på skjermen. Vi kan se at variabelen i
økte med 1
, og "0" ble vist på skjermen, siden både variabelen result
og variabelen i
opprinnelig var satt til null. 0 + 0 = 0
-> dette var det som ble vist på skjermen.
La oss hoppe over iterasjonene med å skrive ut de andre tallene til konsollen og gå til slutten. Det er her vi kan se hovedfeilen i løkken vår. Vi må vise summen av tallene fra 0 til 10 inkludert, men vi tok ikke med 10. Derfor, når vi ser at i = 9
og når den økes til 10
, går vi ut av løkken siden 10 !< 10
(10 er ikke mindre enn 10).
For å løse dette problemet må vi endre betingelsen til i <= 10
. Da får vi riktig resultat.
I hovedsak trykket vi gjentatte ganger på "Step Over"-knappen, noe som førte oss til å oppdage feilen i løkken og deretter rette den.
Merk
Jeg har kun vist de grunnleggende verktøyene i debuggeren. For å lære hvordan du bruker dem, bør du øve selv. Du kan skrive et lignende program og selvstendig se hvordan alt fungerer. Debuggeren er et svært nyttig verktøy fordi det hjelper med å finne og rette feil i koden.
1. Hva er hovedformålet med en debugger?
2. Hva lar et breakpoint deg gjøre i en debugger?
3. Hva gjør "Step Over"-knappen i debuggeren?
Takk for tilbakemeldingene dine!