Bug

Een bug is een fout in software die leidt tot onverwacht of onjuist gedrag. De term stamt uit 1947, toen ingenieurs bij Harvard University een echte mot (moth) vonden die een relais van de Mark II-computer blokkeerde.

Soorten bugs

TypeBeschrijving
LogicafoutHet programma doet iets anders dan bedoeld
CrashbugDe software stopt onverwacht met werken
GeheugenleakGeheugen wordt gereserveerd maar niet vrijgegeven
Race conditionTwee processen interfereren doordat ze tegelijk dezelfde data aanpassen
BeveiligingsbugEen fout die aanvallers kunnen misbruiken (zie CVE)

Van bug naar fix

  1. Ontdekken — door een gebruiker, test of beveiligingsonderzoeker
  2. Reproduceren — de fout stap voor stap opnieuw laten optreden
  3. Diagnosticeren — de oorzaak in de broncode opsporen
  4. Repareren — een patch schrijven
  5. Testen — controleren of de fix werkt en niets anders breekt
  6. Vrijgeven — als onderdeel van een update

Debuggen op Linux

# Logberichten bekijken voor crashende diensten
journalctl -xe -u mijn-dienst

# Coredump analyseren
coredumpctl list
coredumpctl debug

Zie ook

  • patching — een bug herstellen met een patch
  • cve — beveiligingsbugs en hun nummering
  • core-dump — crashdump voor probleemanalyse
  • syslog — loggen van fouten
softwarebegrippen