Kursusindhold
Java OOP
Java OOP
Fejlsøger
Hvad er en debugger?
En debugger er et værktøj, der hjælper dig med at gennemgå din kode trin for trin. Vi kan sætte eksekveringen af koden på pause på et bestemt punkt og starte debug-tilstand for at se, hvordan vores kode fungerer. For at gøre dette skal vi sætte en markør (breakpoint) på den linje, hvor vi ønsker at pause.
Vi har en kode, der skal beregne summen af tal fra et til ti inklusive. Resultatet skal være 55
, men vi får 45
som svar. Lad os sætte et breakpoint i starten af løkken for at forstå, hvorfor svaret ikke stemmer. For at gøre dette skal du klikke med venstre museknap på linjenummeret, og en rød markør vil dukke op der.
Her er koden fra skærmbilledet, omskrevet for bedre læsbarhed og klarhed:
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); } } }
Værktøjer i debug-tilstand
Lad os kort gennemgå, hvordan man arbejder med debuggeren, og hvilke værktøjer der er tilgængelige i den.
Step Over: Med denne knap kan vi fortsætte kodeudførelsen én linje ad gangen. Når den trykkes, vil debuggeren udføre den aktuelle linje og gå videre til den næste, hvorefter den stopper igen;
Step Into: Med denne knap kan vi gå ind i udførelsen af en metode. I vores eksempel er der ingen metode, men hvis der var, ville vi kunne gå ind i den og se, hvad der sker der;
Step Out: Denne knap er det modsatte af den forrige. Den giver os mulighed for at forlade udførelsen af en metode eller en løkke;
Vi kan se værdierne af variablerne i vinduet nederst eller ved siden af disse variabler. Vi kan tydeligt se værdien af variablen
result
, som oprindeligt er nul.
Gennemløb af koden
For at gennemløbe koden klikker vi på "Step Over"-knappen. Vi går ind i for
-løkke, og værdien af variablen i
vises, som er oprettet inde i for
-løkke. Oprindeligt sætter vi denne variabel til nul.
Dernæst klikker vi på "Step Over" flere gange for at fuldføre én iteration og går til konsollen for at se, om noget bliver udskrevet på skærmen. Vi kan se, at variablen i
blev øget med 1
, og "0" blev vist på skærmen, da både variablen result
og variablen i
oprindeligt var sat til nul. 0 + 0 = 0
-> dette var det, der blev vist på skærmen.
Lad os springe iterationerne over, hvor de andre tal udskrives til konsollen, og gå til slutningen. Det er her, vi kan se hovedfejlen i vores løkke. Vi skal vise summen af tallene fra 0 til 10 inklusive, men vi inkluderede ikke 10. Derfor, når vi ser, at i = 9
og når den øges til 10
, forlader vi løkken, da 10 !< 10
(10 er ikke mindre end 10).
For at løse dette problem skal vi ændre betingelsen til i <= 10
. Så får vi det korrekte resultat.
I bund og grund trykkede vi gentagne gange på "Step Over"-knappen, hvilket førte os til erkendelsen af fejlen i løkken og den efterfølgende rettelse.
Bemærk
Jeg har kun vist de grundlæggende debugger-værktøjer. For at lære at bruge dem, bør du selv øve dig med dem. Du kan skrive et lignende program og selvstændigt se, hvordan det hele fungerer. Debuggeren er et meget nyttigt værktøj, fordi det hjælper med at arbejde med fejl og bugs i koden.
1. Hvad er det primære formål med en debugger?
2. Hvad giver et breakpoint dig mulighed for at gøre i en debugger?
3. Hvad gør "Step Over"-knappen i debuggeren?
Tak for dine kommentarer!