Fejlfinding
Hvad er en debugger?
En debugger er et værktøj, der hjælper 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 koden 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 bør 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 der vil dukke en rød markør op.
Her er koden fra skærmbilledet, omskrevet for bedre læsbarhed og klarhed:
Main.java
12345678910111213package 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 træde 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 i starten er nul.
Gennemløb af koden
For at gennemløbe 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.
Herefter 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 er, hvad der blev vist på skærmen.
Lad os springe iterationerne over, hvor de andre tal udskrives til konsollen, og gå direkte til slutningen. Det er her, vi kan se hovedfejlen i vores løkke. Vi skal vise summen af tal fra 0 til og med 10, men vi inkluderede ikke 10. Derfor, når vi ser at i = 9 og 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 en debugger?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain more about how to set breakpoints in different IDEs?
What are some common mistakes people make when using a debugger?
Can you give more examples of how to use the Step Over, Step Into, and Step Out features?
Awesome!
Completion rate improved to 4.76
Fejlfinding
Stryg for at vise menuen
Hvad er en debugger?
En debugger er et værktøj, der hjælper 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 koden 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 bør 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 der vil dukke en rød markør op.
Her er koden fra skærmbilledet, omskrevet for bedre læsbarhed og klarhed:
Main.java
12345678910111213package 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 træde 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 i starten er nul.
Gennemløb af koden
For at gennemløbe 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.
Herefter 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 er, hvad der blev vist på skærmen.
Lad os springe iterationerne over, hvor de andre tal udskrives til konsollen, og gå direkte til slutningen. Det er her, vi kan se hovedfejlen i vores løkke. Vi skal vise summen af tal fra 0 til og med 10, men vi inkluderede ikke 10. Derfor, når vi ser at i = 9 og 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 en debugger?
Tak for dine kommentarer!