Köra DrJavas debugger med "Step Into"
Gör New i DrJava och kopiera in följande program i definitionsrutan:public class Draw2Squares { public static void main (String[] arg) { World w = new World(400,400); Turtle t1 = new Turtle(w,100,100); Turtle t2 = new Turtle(w,200,200); t1.ritaKvadrat(); t2.ritaKvadrat(75); } // main } // Draw2SquaresKompilera programmet och kör det med Run, vilket innebär att alla satserna i mainmetoden utförs i sekvens. Det bör resultera i följande:
Nu skall vi köra programmet med debuggern:
- Klicka på Debugger och välj Debug Mode
- Sätt en "breakpoint" på rad 8 och på rad 9, där metoderna
ritaKvadrat()
ochritaKvadrat(75)
anropas. Du gör det genom att högermusklicka på resp sats och välja "Toggle Breakpoint" och dessa satser rödmarkeras enligt:
Detta innebär att när programmet körs kommer stanna vid satser där vi satt "breakpoint".
- Kör programmet genom att klicka på Run. Programmet kommer nu att utföra satserna
i mainmetoden, sats för sats och stanna vid satsen på rad 8 och markera denna med blå färg, vilket betyder att denna sats är i tur att utföras. Man kan säga att programmet har tagit time out vid satsen.
Notera att programmet nu har kommit så långt att det har ritat en värld med två paddor i. - Sats nr 8 innebär ett anrop av metoden
ritaKvadrat
och vi är nyfikna på att se hur "inhoppet" i den metoden fungerar. För att få veta det väljer vi att köra programmet vidare med "Step Into", vilket vi klickar på.
-
Programmet kommer nu att "hoppa in" metoden
ritaKvadrat
och den finns ju i klassen Turtle, så definitionsrutan kommer nu att visa klassen Turtle och den del av denna som visar just metodenritaKvadrat
. Vi ser nu att den första satsen i metodenritaKvadrat
är i tur att utföras och den satsen är därför markerad med blå färg..
-
Nu skall vi köra programmet vidare sats för sats i metoden
ritaKvadrat
. Vi gör det med "Step Over". Klicka på "Step Over" några ggr tills programmet skall utföra den sista satsen i metoden:
-
Klicka på "Step Over" två ggr så kommer programmet hoppa ur metoden
ritaKvadrat
och programmet är nu tillbaks till mainmetoden i klassenDraw2Squares
på rad 9 som nu markeras att vara nästa sats att utföras.
-
Antag nu att vi är nyfikna på vad som händer vid anropet av
ritaKvadrat(75)
. Kör programmet med "Step Into" för att se metodenritaKvadrat()
. Lägg in bevakning på den lokala variabelnsida
i metoden genom att i "Watches" skriva i namnet på den variabel vi är intresserade av att bevaka. Gör nu nästa sats i metoden, dvs klicka på "Step Over" så ser vi att variabeln har värdet 75.
- Gör sedan "Step Over" i metoden tills programmet är tillbaks i mainmetoden.