Ho un set di punti di interruzione di base definito in un fn setup
definito dall'utente nel mio .gdbinit. Quindi, ogni volta che avvio gdb, devo eseguire quella fn. per impostare tutti i miei brkpoint, prima di iniziare il debug. Posso configurare il mio file .gdbinit in modo che, quando viene avviato, esegua prima il mio numero fn setup
definito dall'utente?Come fare gdb eseguire una funzione definita dall'utente (definita in .gdbinit) ogni volta che si avvia?
7
A
risposta
9
Basta chiamare per nome la funzione:
mio .gdbinit:
define setup
echo Foobar\n
end
setup #This is the function call
E quando l'eseguo:
$ gdb
GNU gdb Fedora (6.8-37.el5)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Foobar
(gdb)
Non funziona per me - dà questo errore: .No la tabella dei simboli è caricata. Usa il comando "file". Nessuna tabella dei simboli caricata. Usa il comando "file". Nessuna tabella dei simboli caricata. Usa il comando "file". Nessuna tabella dei simboli caricata. Usa il comando "file". /home/sbhowmick/.gdbinit:83: Errore nel file di comando originario: Nessun file eseguibile specificato. Utilizzare il comando "file" o "file-exec". Utilizzo della libreria host libthread_db "/lib/tls/libthread_db.so.1". Sto usando GNU gdb Red Hat Linux (6.3.0.0-1.138.el3rh) – TCSGrad
Il mio file .gdbinit si presenta così: definiscono configurazione br fn1 br fn2 fine definiscono some_other_fn ... fine setup – TCSGrad
Questo perché il file binario non è caricato, se si definiscono i punti di interruzione, il binario deve essere già caricato all'avvio di GDB, ad es. devi definire "file a.out" o smtg come quello nel tuo .gdbinit prima di impostare i breakpoint o eseguire "gdb a.out" o giù di lì. – Kimvais