Felsökare
Vad är en debugger?
En debugger är ett verktyg som hjälper dig att stega igenom din kod. Vi kan pausa exekveringen 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
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); } } }
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 kodens körning 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 körningen 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 körningen av en metod eller loop;
-
Vi kan se värdena för variabler 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 ursprungligen var satta till noll. 0 + 0 = 0 -> detta var vad som visades på skärmen.
Vi hoppar över iterationerna där de andra talen skrivs ut till konsolen och går direkt till slutet. Här kan vi se huvudfelet i vår loop. Vi behöver visa summan av talen från 0 till och med 10, men vi inkluderade inte 10. Därför, när vi ser att i = 9 och när det ökas till 10, avslutas 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å "Stega över"-knappen flera gånger, vilket ledde oss till insikten om loopens misstag och den efterföljande korrigeringen.
Notera
Jag har endast visat de grundläggande debugger-verktygen. 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 huvudsyftet med en debugger?
2. Vad tillåter en brytpunkt dig att göra i en debugger?
3. Vad gör knappen "Stega över" i en debugger?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4.76
Felsökare
Svep för att visa menyn
Vad är en debugger?
En debugger är ett verktyg som hjälper dig att stega igenom din kod. Vi kan pausa exekveringen 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
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); } } }
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 kodens körning 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 körningen 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 körningen av en metod eller loop;
-
Vi kan se värdena för variabler 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 ursprungligen var satta till noll. 0 + 0 = 0 -> detta var vad som visades på skärmen.
Vi hoppar över iterationerna där de andra talen skrivs ut till konsolen och går direkt till slutet. Här kan vi se huvudfelet i vår loop. Vi behöver visa summan av talen från 0 till och med 10, men vi inkluderade inte 10. Därför, när vi ser att i = 9 och när det ökas till 10, avslutas 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å "Stega över"-knappen flera gånger, vilket ledde oss till insikten om loopens misstag och den efterföljande korrigeringen.
Notera
Jag har endast visat de grundläggande debugger-verktygen. 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 huvudsyftet med en debugger?
2. Vad tillåter en brytpunkt dig att göra i en debugger?
3. Vad gör knappen "Stega över" i en debugger?
Tack för dina kommentarer!