Excerpt |
---|
Debuggeren er et verktøy som brukes til å analysere kjørende kode, noe som kan være svært nyttig når man vil lokalisere forstå og rette opp/fjerne bugs eller uønsket adferd evt. rette feil i et program. |
Eclipse sin debuggingmodus
Eclipse kan kjøre programmer i såkalt debuggingmodus, som gir muligheten til å stoppe programmet underveis på spesifikke steder og kjøre programmet trinnvis, f.eks. linje for linje. For å kjøre Eclipse i debuggingmodus trykker du på det lille ikonet av en bille (bug) som ligger rett ved siden av knappen for "kjør" (se bilde), eventuelt velg Run > Debug.
De viktigste panelene for debugging (feilfinning) er tilgjengelige i TDT4100De 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 det har Eclipse har et eget debug- perspektiv for formålet som du finner ved å velge "Debug" øverst ø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 , og velge Debug fra listen og trykke OKlista. Eventuelt kan du trykke window -Window > perspective -> open perspective -> debugPerspective > Open Perspective... > Debug. For å komme tilbake til det gamle perspektivet velger du "tdt4100" TDT4100 fra samme sted. Uansett hvilket perspektiv du bruker kan du skreddersy det ved å dra rundt på de forskjellige vinduenepanelene.
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
Debug-perspektivet, med de essensielle debuggingpanelene Debug, Breakpoints og Variables i standard-utlegget. Vi anbefaler utlegget som er vist for TDT4100-perspektivet.
TDT4100-perspektivet, med dets standard-utlegg av paneler. Det inneholder de samme tre debuggingpanelene.
I tillegg til de standard panelene har vi installert et panel kalt debug visualisation view som du får opp ved å trykke Window > Show View > Debug Visualisation View. Panelet vil generere grafiske representasjoner av variabler i debuggingmodus. Dette er nyttig når man begynner å jobbe med større objektstrukturer.
Stoppunkter (breakpoints)
Når du kjører programmet i debuggingmodus, har du muligheten til å stoppe underveis, men du må 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 såkalte stoppunkt (eng: breakpoint). Du kan sette inn et punkt stoppunkt ved å dobbeltklikke (eller høyreklikke og trykke "toggle breakpoint" Toggle Breakpoint) i den lille margen til venstre for den kodelinjen kodelinja du ønsker å stoppe før - da dukker det opp en liten blå sirkel som markerer breakpointetstoppunktet. Legg også merke til at Breakpoints-vinduet har Stoppunktet vil også vises i en liste i Breakpoints-panelet, som alltid viser en liste over alle punkter du har lagt til.
Når stoppunkt først er laget, kan de deaktiveres og reaktiveres, vha. avkrysninsboksene i lista.
Ved kjøring i debuggingmodus, Når du legger inn breakpoints vil Eclipse stoppe rett før linjen med breakpointet kjøres når du kjører i debuggermodusstoppunktet. Hver gang kjøringen stopper, vil Variables-panelet vise verdien til variablene som er aktive der kjøringen stoppet. Dersom du kjø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. ennå. Dersom du bare vil vite verdien på en enkelt variabel kan du holde musepekeren over den i kodevinduet.
Nå er du i gang og programmet vil, som nevnt over, stoppe før det første breakpointet det finner.
Debug-panelet vil vise hvilke metodekall som er aktive (men på vent), den såkalt kall-stacken. Ved å velge en annen enn den øverste vil du se variablene som er aktive der.
Navigere i et stoppet program
Når et program har stoppet ved et breakpoint har stoppunkt har du ulike måter å gå videre på. De to store mulighetene er å fortsette eller å steppe gå gjennom koden trinnvis. Å fortsette vil si at man kjører koden til neste breakpointstoppunkt, mens å steppe kjøre trinnvis betyr at man kjører kodelinjer en etter en på kommando fra brukeren. De viktigste knappene for å navigere i et stoppet program er vist på figuren nedenfor.
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.
...
- Resume: Koden kjøres frem til neste breakpointneste stoppunkt
- Suspend: Brukes for å avslutte tråder (ikke pensum)
- Terminate: Avslutter kjøringen
- Disconnect: Brukes hvis du degbugger debugger et program som ikke er på din lokale maskin (ikke pensum)
- Step intoInto: En del av steppe-funksjonenvariant av trinnvis kjøring. Går inn i neste blokk med kode. Dersom det er et metodekall på neste linje som skal utføres, vil Step into Into ta deg inn i denne slik at du kan fortsette debuggingen trinnvis kjøring der.
- Step over: Tar deg til neste kodelinje i den filen du er i nåOver: Utfører hele kodelinja du står på. Dersom du har et metodekall på linjen vil du altså ikke gå inn i denne metoden, men utføre den ferdig.
- Step return: Dersom du har brukt Step into for å komme inn i en metode vil Step return ta deg ut igjen. Return: Kjører koden videre inntil den returnerer fra metoden du er i.
- Drop to frame: Kjører en del av programmet Spoler tilbake til en ventende metode og lar deg kjøre koden derfra 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.
...
Se også:
...