Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Nye bilder og noe ny tekst, fokus på tdt4100-perspektivet
Excerpt

Debuggeren er et verktøy som brukes til å analysere kjørende kode .som kan være svært nyttig når man vil lokalisere og rette opp/fjerne bugs eller uønsket adferd i et program.

De viktigste debug-vinduene er tilgjengelige i tdt4100-perspektivet, så du trenger ikke bytte perspektiv for å debugge programmet ditt. Hvis du likevel har lyst til å gjøre det  har Eclipse har et eget debug-perspektiv som du finner Den kommer med et eget perspektiv, som du vinner ved å velge "Debug" øverst i høyre hjørne av skjermen (se bilde). Dersom dette valget ikke vises, kan du trykke på den lille hvite knappen med et pluss-tegn like ved, velge Debug fra listen og trykke OK. Eventuelt kan du trykke window -> perspective -> open perspective -> debug. For å komme tilbake til det gamle perspektivet velger du "Javatdt4100" fra samme sted. Uansett hvilket perspektiv du bruker kan du skreddersy det ved å dra rundt på de forskjellige vinduene.

 

Image Removed 

Image Added

 

Image AddedImage Added

debugger-perspektivet til Eclipse                                                          debuggermodus i tdt4100-perspektivet

Kjøre Eclipse i debuggermodus

For å kjøre Eclipse i debuggermodus trykker du på det lille ikonet av en bille (bug) som ligger rett ved siden av knappen for "kjør", eventuelt trykk run -> debug.

...

Breakpoints

Når du debugger kode har du muligheten til å stoppe midt i et kjørende program. Da må du fortelle Eclipse hvor du ønsker at programmet skal stoppe. Dette gjøres ved å markere koden med et breakpoint. Du kan sette inn et punkt ved å dobbeltklikke (eller høyreklikke og trykke "toggle breakpoint") i den lille margen til venstre for den linjen du befinner deg på kodelinjen du ønsker å stoppe før - da dukker det opp en liten blå sirkel som markerer breakpointet. Legg også merke til at du kan velge "Breakpoints" oppe til høyre. Her får du opp Breakpoints-vinduet har en liste over alle punkter du har lagt til. 

Image RemovedImage Added

Når du legger inn breakpoints vil Eclipse stoppe rett før linjen med breakpointet kjøres når du kjører i debuggermodus. Dersom du starter å debugge programmet i eksempelet over vil du derfor ikke få vite verdien av isEven, siden den ikke finnes før linjen har kjørt. Du vil derimot få vite verdien av isOdd siden denne nettopp har blitt evaluert. Ved å velge "Variables" oppe til høyre på skjermen får du en oversikt over alle variabler som finnes i programmet, samt verdien de harkjører kodesnutten over vil variablene tall og i ha verdier (henholdsvis 10 og 5), mens resultat ikke vil være opprettet enda. Dette ser man enkelt i "Variables"-vinduet som viser en oversikt over alle variablene i programmet og deres verdier. Dersom du bare vil vite verdien på en enkelt variabel kan du holde musepekeren over den i kodevinduet.

For at Eclipse skal ta hensyn til breakpointene må du kjøre koden i debuggingsmodus. Denne finner du rett ved siden av knappen for "kjør". Se figuren under. 

Image Removed

Image Added

Nå er du i gang og programmet vil, som nevnt over, stoppe før det første breakpointet det finner.

...

Når et program har stoppet ved et breakpoint har du ulike måter å fortsette gå videre på. De to store mulighetene er å fortsette eller å steppe gjennom koden. Å fortsette betyr vil si at man kjører koden til neste breakpoint, mens å steppe betyr at man kjører kodelinjene kodelinjer en etter en på kommando fra brukeren. De viktigste knappene for å navigere i et stoppet program er vist på figuren nedenfor. 

Image Added

Image Removed 

En forklaring på hva de ulike knappene gjør, fra venstre mot høyre, er gitt nedenfor. De du kommer til å bruke desidert mest er notert med fet skrift.

Image Added

  • Resume: Koden kjøres frem til neste breakpoint
  • Suspend: Brukes for å avslutte tråder (ikke pensum)
  • Terminate: Avslutter kjøringen
  • Disconnect: Brukes hvis du degbugger et program som ikke er på din lokale maskin (ikke pensum)
  • Step into: En del av steppe-funksjonen. Går inn i neste blokk med kode. Dersom det er et metodekall på neste linje som skal utføres, vil Step into ta deg inn i denne slik at du kan fortsette debuggingen der. 
  • Step over: Tar deg til neste kodelinje i den filen du er i nå. Dersom du har et metodekall på linjen vil du altså ikke gå inn i denne metoden. 
  • Step return: Dersom du har brukt Step into for å komme inn i en metode vil Step return ta deg ut igjen. 
  • Drop to frame: Eclipse har støtte for å "gå bakover". (???)Kjører en del av programmet på nytt
  • Use Step Filters: Debuggeren har støtte for å filtrere ut klasser man ikke ønsker å debugge. Denne funksjonen tvinger alle step-knapper til å bruke disse filtrene.

...