Kursinnehåll
Java OOP
Java OOP
Felsökare
Vad är en debugger?
En debugger är ett verktyg som hjälper dig att stega igenom din kod. Vi kan pausa körningen av koden vid en viss punkt och starta felsökningsläget för att se hur vår kod fungerar. För att göra detta behöver vi sätta en markör (brytpunkt) på raden där vi vill pausa.
Vi har en kod som ska beräkna summan av talen från ett till tio, inklusive. Resultatet ska vara 55
, men vi får 45
som svar. Låt oss sätta en brytpunkt i början av loopen för att förstå varför svaret inte stämmer. För att göra detta behöver du klicka med vänster musknapp på radnumret, och en röd markör kommer att visas där.
Här är koden från skärmdumpen, omskriven för bättre läsbarhet och tydlighet:
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); } } }
Verktyg i felsökningsläget
Låt oss kortfattat gå igenom hur man arbetar med felsökaren och vilka verktyg som finns tillgängliga i den.
Stega över: Med denna knapp kan vi fortsätta kodexekveringen en rad i taget. När den trycks ned kommer felsökaren att köra den aktuella raden och gå vidare till nästa, och sedan stanna igen;
Stega in: Med denna knapp kan vi gå in i exekveringen av en metod. I vårt exempel finns ingen metod, men om det fanns en skulle vi kunna gå in i den och se vad som händer där;
Stega ut: Denna knapp är motsatsen till den föregående. Den låter oss lämna exekveringen av en metod eller loop;
Vi kan se värdena på variablerna i fönstret längst ner eller bredvid dessa variabler. Vi kan tydligt se värdet på variabeln
result
, som initialt är noll.
Iterera genom koden
För att iterera klickar vi på knappen "Stega över". Vi går in i for
-loopen, och värdet på variabeln i
visas, vilken skapas inuti for
-loopen. Inledningsvis sätter vi denna variabel till noll.
Därefter klickar vi på "Stega över" flera gånger för att slutföra en iteration och går till konsolen för att se om något skrivs ut på skärmen. Vi kan se att variabeln i
ökade med 1
, och "0" visades på skärmen, eftersom både variabeln result
och variabeln i
initialt var satta till noll. 0 + 0 = 0
-> detta var vad som visades på skärmen.
Vi hoppar över iterationerna där andra siffror skrivs ut till konsolen och går till slutet. Det är här vi kan se huvudfelet i vår loop. Vi behöver visa summan av talen från 0 till 10 inklusive, men vi inkluderade inte 10. Därför, när vi ser att i = 9
och när den ökas till 10
, lämnar vi loopen eftersom 10 !< 10
(10 är inte mindre än 10).
För att lösa detta problem behöver vi ändra villkoret till i <= 10
. Då får vi rätt resultat.
I huvudsak tryckte vi upprepade gånger på knappen "Stega över", vilket ledde oss till insikten om felet i loopen och den efterföljande korrigeringen.
Observera
Jag har endast visat de grundläggande verktygen i debuggern. För att lära dig använda dem bör du öva själv. Du kan skriva ett liknande program och självständigt se hur allt fungerar. Debuggern är ett mycket användbart verktyg eftersom det hjälper till att arbeta med fel och buggar i koden.
1. Vad är det primära syftet med en debugger?
2. Vad tillåter en brytpunkt dig att göra i en debugger?
3. Vad gör knappen "Step Over" i debuggningsverktyget?
Tack för dina kommentarer!