Cursusinhoud
Java OOP
Java OOP
Debugger
Wat is een debugger?
Een debugger is een hulpmiddel waarmee je stap voor stap door je code kunt gaan. We kunnen de uitvoering van de code op een bepaald punt pauzeren en de debugmodus starten om te zien hoe onze code werkt. Hiervoor moeten we een markering (breakpoint) plaatsen op de regel waar we willen pauzeren.
We hebben een code die de som van de getallen van één tot en met tien moet berekenen. Het resultaat zou 55
moeten zijn, maar we krijgen 45
als antwoord. Laten we een breakpoint aan het begin van de lus plaatsen om te begrijpen waarom het antwoord niet klopt. Hiervoor moet je met de linkermuisknop op het regelnummmer klikken; er verschijnt dan een rode markering.
Hier is de code uit de screenshot, herschreven voor betere leesbaarheid en duidelijkheid:
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); } } }
Hulpmiddelen binnen de debugmodus
Laten we kort bekijken hoe we met de debugger werken en welke hulpmiddelen daarin beschikbaar zijn.
Step Over: Met deze knop kunnen we de code regel voor regel uitvoeren. Wanneer deze wordt ingedrukt, voert de debugger de huidige regel uit en gaat vervolgens naar de volgende regel, waarna hij opnieuw stopt;
Step Into: Met deze knop kunnen we de uitvoering van een methode binnengaan. In ons voorbeeld is er geen methode, maar als die er wel was, zouden we deze kunnen binnengaan en zien wat daar gebeurt;
Step Out: Deze knop is het tegenovergestelde van de vorige. Hiermee kunnen we de uitvoering van een methode of lus verlaten;
We kunnen de waarden van variabelen zien in het venster onderaan of naast deze variabelen. We kunnen duidelijk de waarde van de variabele
result
zien, die aanvankelijk nul is.
Door de code stappen
Om te itereren, klikken we op de "Step Over"-knop. We gaan de for
-lus in en de waarde van de variabele i
verschijnt, die binnen de for
-lus wordt aangemaakt. Aanvankelijk stellen we deze variabele in op nul.
Vervolgens klikken we meerdere keren op "Step Over" om één iteratie te voltooien en gaan we naar de console om te zien of er iets op het scherm wordt afgedrukt. We zien dat de variabele i
met 1
is verhoogd en dat "0" op het scherm werd weergegeven, omdat zowel de variabele result
als de variabele i
aanvankelijk op nul waren ingesteld. 0 + 0 = 0
-> dit is wat op het scherm werd weergegeven.
Laten we de iteraties van het afdrukken van de andere getallen naar de console overslaan en naar het einde gaan. Hier zien we de belangrijkste fout in onze lus. We moeten de som van de getallen van 0 tot en met 10 weergeven, maar we hebben 10 niet meegenomen. Daarom zien we dat i = 9
is en wanneer deze wordt verhoogd naar 10
, verlaten we de lus omdat 10 !< 10
(10 is niet kleiner dan 10).
Om dit probleem op te lossen, moeten we de voorwaarde wijzigen naar i <= 10
. Dan krijgen we het juiste resultaat.
In wezen hebben we herhaaldelijk op de "Step Over"-knop gedrukt, wat ons leidde tot het inzicht van de fout in de lus en de daaropvolgende correctie.
Opmerking
Ik heb alleen de basisgereedschappen van de debugger getoond. Om te leren hoe je deze gebruikt, moet je er zelf mee oefenen. Je kunt een vergelijkbaar programma schrijven en zelfstandig zien hoe alles werkt. De debugger is een zeer nuttig hulpmiddel omdat het helpt bij het opsporen van fouten en bugs in de code.
1. Wat is het primaire doel van een debugger?
2. Wat kun je met een breakpoint doen in een debugger?
3. Wat doet de "Step Over"-knop in de debugger?
Bedankt voor je feedback!