2013-07-05 8 views
6

Występuje problem z drukowaniem wielu zmiennych (say 25) w funkcji na GDB Prompt.Drukowanie wielu zmiennych w GDB?

Czy istnieje wygodny sposób, aby to zrobić zamiast drukować wszystkie zmienne ręcznie?

Czy mogę mieć skrypt lub prostszy sposób, który może wykonać moją pracę?

+0

Możliwy duplikat [gdb - drukowanie wielu zmiennych z jednego polecenia] (http://stackoverflow.com/questions/1882857/gdb-print-multiple-variables-with-one-command) –

Odpowiedz

12

Można wydrukować wiele wartości za pomocą polecenia printf w gdb.

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

Aby użyć go w przyszłości, można zdefiniować funkcję gdb lub użyć funkcji gdb-history.

  1. Aby zdefiniować gdb-funkcji, tworzyć/modyfikować plik $HOME/.gdbinit z następującym conten,

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

    Następnie można użyć print_all jako polecenie.

  2. Historii podstęp, tworzyć/modyfikować plik $HOME/.gdbinit o następującej treści:

    set history filename ~/.gdb_history 
    set history save 
    

    i dostać go za pomocą ctrl+r samo jak w bashu. Aktualna odpowiedź gdb-history to here.

+0

.gdbinit jest wspólne dla wszystkich dystrybucji Linuksa ??? – Jeyaram

+0

@Jeyaram, nie mam doświadczenia w różnych dystrybucjach linuksa, ale możesz użyć opcji '-x', aby określić plik poleceń, jeśli nie został wybrany z' $ HOME/.gdbinit'. Np .: 'gdb -x/path/.gdbinit/path/binary' – VoidPointer

+0

Wygląda na to, że nie można wydrukować rejestru. –