English summary: This article is in Norwegian and describes debugging of Java code in the Eclipse Java IDE.
Debugging (“avlusing”) I eclipse, betyr å stoppe et program som kjører og se hvilke verdier variabler har. Å debugge Hello.java som det var, er ikke spesielt interessant. Det er f.eks. ingen variabler å kikke på utenom “args”, som her ikke inneholder noe interessant.
Om du endrer programmet til noe sånt, blir det litt mer interessant (du kan bruke Ctrl-SPC for å ekspandere og skrive ting, eller du kan bare lime inn koden som den står i eksempelet):
package no.example.hello; public class Hello { /** * @param args */ public static void main(String[] args) { int numberOfTimesToPrintMessage = args.length; for (int i=0; i<numberOfTimesToPrintMessage; i++) { System.out.println("Hello world!"); } } }
Linja med “for” betyr at programmet skal gå i ei løkke et visst antall ganger og gjøre det som står inne i løkka hver av gangene.
Om du nå prøver å kjøre programmet, så ser du at ingenting kommer ut i Console-vinduet. Det var merkelig! På tide å debugge!
Høyreklikk i margen på linja
System.out.println("Hello world!");
og velg “Toggle breakpoint”.
Velg så fra toppmenyen
Run -> Debug As -> Java Application
Programmet vil kjøre som før, og ingenting vil fortsatt skrives ut.
Sett et brekkpunkt i linja med
for (int i=0; i<numberOfTimesToPrintMessages; i++) {
og trykk på F11 for å debugge på nytt.
Du vil få opp en dialog, som heter “Confirm Perspective Switch”. Bare velg “Remember my decision”, klikk på “Yes”-knappen og fortsett.
Vinduene i eclipse vil rearrangere seg, men kildekoden til Hello.java vil fortsatt være synlig. I et vindu som heter “Variables” så vil du se at “numberOfTimesToPrintMessages” har verdien “0”. Aha!
Koden
for (int i=0; i<numberOfTimesToPrintMessages; i++) {
betyr: la variabelen i ha verdiene fra 0 og til numberOfTimesToPrintMessages – 1, og for hver ny verdi av i, utfør koden mellom “{” og “}”.
Variabelen numberOfTimesToPrintMessages er definert sånn:
int numberOfTimesToPrintMessage = args.length;
dvs. antall kommandolinjeargument som er gitt til programmet.
Trykk “F8” for å la programmet fortsette. Programmet vil avslutte uten at noe blir skrevet ut.
For å komme tilbake til oppsettet du bruke for å lage Hello.java, velg fra menyen:
Window -> Openm Perspective -> Java
I vinduet “Package Explorer”, høyreklikk på “Hello.java” og velg “Properties”.
Velg “Run/Debug Settings”, velg “Hello” og klikk på “Edit…”.
I “Edit Configuration”-dialogen, velg “Arguments”-tabben, og i “Program Arguments”, legg inn:
first second third fourth
Kjør så programmet igjen
Run -> Run
og observer at Console nå får fire utgaver av hello world.
Noen øvelser: debug og se hvordan variablene endrer seg. Du kan bruke F8 for å la programmet kjøre til neste brekkpunkt.
En ting du kan gjøre er å bruke verdiene fra argumentene i utskriftene og så endre argumentene i Properties og se hvordan det endrer kjøringen av programmet.