🪲Code debuggen

De compiler van C++ controleert of je code geschreven is volgens de C++ afspraken qua grammatica en syntax. De compiler geeft een foutmelding als er je code niet voldoet, bijvoorbeeld als je een ; bent vergeten aan het einde van een regel.

Maar ook als de compiler geen foutmeldingen meer geeft, kunnen er nog fouten in je code zitten. Dit zijn logische fouten, zoals fouten in de werking van je algoritme.

Er zijn verschillende manier om logische fouten uit je code te halen. Twee opties zijn:

  1. Met cout-statements in je code

  2. Met een debugger-tool

We gaan beide technieken toepassen op onderstaande code. Dit is de code van opgave 5.4.

#include <iostream>
using namespace std;

int main() {
  srand (time(NULL)); 
  int dobbelsteen;
  int aantalKeer[6]{};

  for (int teller = 0; teller< 10; teller++){
    dobbelsteen = (rand() % 6) + 1; 
    aantalKeer[dobbelsteen-1]++;
  }
  
  for (int teller = 0; teller< 6; teller++){
    cout << teller+1 << " is " << aantalKeer[teller] << " keer gegooid" << endl;  
  }
}

Debuggen met behulp van cout Een manier om fouten uit je code te halen is extra cout-statements toe te voegen aan de code. Vervang de for-loop in de code hierboven door de volgende code:

for (int teller = 0; teller< 10; teller++){  
  cout << "Teller " << teller << endl; 
  dobbelsteen = (rand() % 6) + 1; 
  aantalKeer[dobbelsteen-1]++; 
  cout << "Dobbelsteen = " << dobbelsteen << endl; 
  cout << "Aantalkeer " << dobbelsteen << " = " << aantalKeer[dobbelsteen-1] << endl; 
  cout << "Druk enter om verder te gaan " << endl; 
  cin.get(); 
}

Er wordt bewust op input van de gebruiker gewacht voordat het programma verder gaat anders krijg je in 1 keer heel veel informatie op het scherm waardoor het heel moeilijk is om te zien wat er gebeurt. Probeer deze manier van debuggen uit.

Debuggen met behulp van een debugger Een tweede manier om code te doorlopen is met een debugger. Het hangt af van de compiler en IDE (=software waarin je je code schrijft) of er een debugger aanwezig is. In replit.com is er een debugger aanwezig. Probeer deze manier van debuggen uit door de volgende stappen te volgen:

  1. De debugger stopt bij regel 9 omdat hier een breakpoint is toegevoegd. Je kan nu zien wat de waardes van de variabele zijn als de code bij regel 9 is.

  2. Ben je klaar met debuggen dan kan je op de blauwe stop knop klikken.

Last updated