Note su GDB
In questa pagina di Wiki ci sono appunti disordinati su gdb Happy debugging
Installare GDB
Meglio installare cgdb, che mentre usate il debug vi fa vedere il codice splittando la shell a metà. Poi è tutto uguale solo che dovete lanciare cgdb invece di gdb.
Compilare
Usate sempre l'opzione -g nelle vostre CFLAGS se poi volete usare gdb per fare il debug
Lanciare il programma
gdb --args file argomento1 argomento2 argomento3
Esecuzione
Prima di eseguire il debug può essere utile specificare dei breakpoints
break nomefile:riga
di default gdb si fermera' a qualsiasi segnale. Se vogliamo ad esempio ignorare SIGPIPE facciamo
handle SIGPIPE nostop
Fatto questo mandiamo in esecuzione:
run
Se vogliamo mettere un breakpoint condizionale, ad esempio dopo primo primo break
condition 1 Scheduler::instance().clock() > 20
dove 1 è il numero del breakpoint e Scheduler::instance().clock() è il nome della variabile
A questo punto gdb si ferma al primo breakpoint che abbiamo impostato oppure al primo problema che incontra
Per andare avanti usiamo il comando next
Per entrare dentro una funzione usiamo step
Per vedere qualche è il problema usiamo backtrace
Per stampare il contenuto di una variabile usiamo print nomevar
Per far continuare l'esecuzione regolare del programma usiamo continue