Caricamento contenuto pagina

È possibile caricare il contenuto per la pagina indicata sotto. Se viene cambiato il nome della pagina, è possibile caricare il contenuto per un'altra pagina. Se il nome della pagina è lasciato vuoto, il nome della pagina viene ipotizzato dal nome del file.

File da cui caricare il contenuto della pagina
Nome pagina
Commento
Di che colore era il cavallo bianco di Napoleone?

Italiano English
Modifica History Actions

gdb

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