User Tools

Site Tools


doc:appunti:prog:gdb

Usare gdb (GNU Debug)

Se possibile installare anche il pacchetto -dbg del programma de debuggare. Questo contiene i simboli utilizzabili per stabilire breakpoint, ecc. L'elenco dei simboli viene installato in /usr/lib/debug/ e corrisponde al percorso e nome del file eseguibile. Ecco un estratto:

08120380 B ddns_update_style
08078e20 T ddns_updates
080884e0 T decline_lease6
08086d20 T decline_leases

Copiare il file sorgente del pezzo da debuggare nella directory corrente, ad esempio ddns.c, quindi lanciare gdb.

Con questi tre comandi si dichiara qual'è l'eseguibile da debuggare, si imposta un breakpoint all'inizio di una funzione, e si manda in esecuzione il programma con gli opportuni argomenti. In questo esempio il demone dhcpd viene avviato con l'opzione -f, che impone al programma di girare in foreground senza effettuare il fork in background:

file /usr/sbin/dhcpd
b ddns_updates
run -f -q eth0

Una volta raggiunto il breakpoint è possibile continuare l'esecuzione con next, step, continue.

doc/appunti/prog/gdb.txt · Last modified: 2011/06/24 11:40 by niccolo