2013-04-11 1 views
6

Gibt es eine Möglichkeit, die Ausgabe des Druckbefehls in gdb grep? In meinem Fall debugge ich einen Core-Dump mit Gdb und das Objekt, das ich debugging enthält verdammt viele Elemente. Ich finde es schwierig, nach einem passenden Attribut zu suchen, d. H.Wie grep auf gdb Drucken

(gdb) print *this | grep <attribute> 

Danke.

+1

Dann wollen Sie diesen Patch: http://sourceware.org/ml/gdb-patches/2011-07/msg00572.html – cnicutar

+1

Das Hauptproblem mit dieser Syntax ist, dass die | character ist ein gültiger c-Operator. – matt

Antwort

5

(gdb) drucken * this | grep

Der "Standard" Weg, dies zu erreichen, ist Meta-X gdb in emacs zu verwenden.

Eine Alternative:

(gdb) set logging on 
(gdb) print *this 
(gdb) set logging off 
(gdb) shell grep attribute gdb.txt 

Der Patch erwähnt von cnicutar sicher attraktiv aussieht im Vergleich zu den oben genannten. Ich vermute, der Grund, warum es (oder sein Äquivalent) nie eingereicht wurde, ist, dass die meisten GDB-Betreuer emacs verwenden und dieses Problem daher nicht an erster Stelle haben.

+0

Danke @Employed Russisch –

+0

@Employed Russisch Grund: http://sourceware.org/ml/gdb-patches/2011-07/msg00284.html – matt

+0

Worüber reden Sie? Ich benutze Emacs und probiere einfach 'print $ rax | Grep 41', es sagt «Kein Symbol» grep "». Wenn du Emacs erlaubst zu suchen, ist es sicher nicht das native Grep. Der grep könnte in einem Skript verwendet werden, d. H. Um einen gdb-Watchpoint so einzustellen, dass er nicht in einer bestimmten Funktion aufhört * (das ist es, was ich versuche) *. –