2013-07-05 29 views
6

Ich habe ein Problem beim Drucken mehrerer Variablen (say 25) in einer Funktion auf GDB Prompt.Mehrere Variablen in GDB drucken?

Gibt es eine bequeme Möglichkeit, dies zu tun, anstatt alle Variablen manuell zu drucken?

kann ich ein Skript oder einen einfacheren Weg haben, der meine Arbeit machen kann?

+0

Mögliche Duplikat [gdb - mehrere Variablen mit einem Befehl drucken] (http://stackoverflow.com/questions/1882857/gdb-print-multiple-variables-with-one-command) –

Antwort

12

Sie können mehrere Werte mit dem Befehl printf in gdb drucken.

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

Um es in Zukunft zu nutzen, können Sie entweder eine GDB-Funktion oder Verwendung GDB-Historie-Funktion definieren.

  1. Um eine GDB-Funktion, Erstellen/Ändern Datei $HOME/.gdbinit mit folgendem conten,

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

    Dann können Sie print_all als Befehl zu definieren.

  2. Für Geschichte Trick, Erstellen/Ändern Datei $HOME/.gdbinit mit folgendem Inhalt:

    set history filename ~/.gdb_history 
    set history save 
    

    und es mit ctrl+r wie in bash gleiche bekommen. Aktuelle gdb-Geschichte Antwort ist here.

+0

.gdbinit ist allen Linux Distributionen gemeinsam? – Jeyaram

+0

@Jeyaram, Ich habe keine Erfahrung auf verschiedenen Linux-Distributionen, aber Sie können '-x' verwenden, um eine Befehlsdatei anzugeben, wenn sie nicht aus' $ HOME/.gdbinit' ausgewählt wurde. Bsp .: 'gdb -x /path/.gdbinit/path/binary' – VoidPointer

+0

Es scheint, kann Register nicht drucken. –