2013-07-05 12 views
6

Sto riscontrando un problema per stampare più variabili (say 25) in una funzione su GDB Prompt.Stampa di più variabili in GDB?

Esiste un modo conveniente per eseguire questa operazione invece di stampare manualmente ogni variabile?

posso avere uno script o un modo più semplice che può fare il mio lavoro?

+0

Possibile duplicato di [gdb - stampare più variabili con un solo comando] (http://stackoverflow.com/questions/1882857/gdb-print-multiple-variables-with-one-command) –

risposta

12

È possibile stampare più valori utilizzando il comando printf in gdb.

printf "%d,%d\n", a, b 

Per utilizzarlo in futuro, è possibile definire una funzione gdb o utilizzare la funzione gdb-history.

  1. Per definire una gdb-funzione, creare/modificare il file $HOME/.gdbinit con il seguente conten,

    define print_all 
        printf "%d,%d\n", a, b 
    end 
    document print_all 
        Prints all my variables. 
    end 
    

    quindi è possibile utilizzare print_all come un comando.

  2. Per la storia trucco, creare/modificare il file $HOME/.gdbinit con il seguente contenuto:

    set history filename ~/.gdb_history 
    set history save 
    

    e farlo utilizzando ctrl+r stesso come in bash. La risposta cronologia gdb effettiva è here.

+0

.gdbinit è comune a tutte le distribuzioni Linux ??? – Jeyaram

+0

@Jeyaram, non ho esperienza su diverse distribuzioni di Linux, ma puoi usare l'opzione '-x' per specificare il file di comando se non viene selezionato da $ HOME/.gdbinit'. Es .: 'gdb -x /path/.gdbinit/path/binary' – VoidPointer

+0

Sembra impossibile stampare il registro. –

Problemi correlati