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
.