= 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}}}