lezione 07

debugging

assert, gdb e diagnosi errori.

livello: avanzato durata: 26 min output: debug toolkit badge: c essentials

debug e assert

#include <assert.h>
assert(ptr != NULL);

puntatori

int value = 10;
int *ptr = &value;
printf("%d\n", *ptr);

array

int nums[3] = {1, 2, 3};
printf("%d\n", nums[0]);

funzioni

int sum(int a, int b) { return a + b; }

esercizi

usa assert per verificare una condizione.

assert(ptr != NULL);

panoramica

In questo capitolo su debugging lavoriamo su debug e assert, puntatori, array, funzioni per creare micro-pattern riutilizzabili.

lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.

badge: c essentials

obiettivi

  • capire e applicare debug e assert in uno scenario reale
  • capire e applicare puntatori in uno scenario reale
  • capire e applicare array in uno scenario reale
  • capire e applicare funzioni in uno scenario reale

scheda rapida

#include <assert.h>
assert(ptr != NULL);

adatta questo scheletro agli esempi della lezione.

tips

  • compila con warning elevati
  • controlla ogni return code
  • libera la memoria allocata
  • usa header guard
  • mantieni funzioni corte
  • mantieni debug e assert leggibile

tip: documenta ogni scelta architetturale.

mini progetto

aggiungi assert e log per diagnosticare.

  • inserisci assert
  • riproduci bug
  • verifica

output atteso: bug isolato.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief