2013-04-11 14 views
6

Czy istnieje sposób na grep na wyjściu polecenia drukowania w gdb? W moim przypadku debuguję zrzut główny przy pomocy gdb, a obiekt, który debuguję, zawiera wiele elementów. Trudno jest znaleźć pasujący atrybut, np .:Jak grep na gdb print

(gdb) print *this | grep <attribute> 

Dzięki.

+1

Następnie chcesz tę poprawkę: http://sourceware.org/ml/gdb-patches/2011-07/msg00572.html – cnicutar

+1

Głównym problemem z tą składnią jest to, | znak jest prawidłowym operatorem c. – matt

Odpowiedz

5

(gdb) drukuj * to | grep

"Standardowym sposobem osiągnięcia tego celu jest użycie Meta-X gdb w emacs.

Alternatywą:

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

Plaster wspomniał cnicutar na pewno wygląda atrakcyjnie w porównaniu do wyżej wymienionych. Zgaduję, że powodem, dla którego go (lub jego odpowiednika) nigdy nie przesłano, jest to, że większość opiekunów GDB używa emacs, a więc nie ma tego problemu w pierwszej kolejności.

+0

Dzięki @Employed Russian –

+0

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

+0

O czym ty mówisz? Używam Emacsa i po prostu wypróbowałem 'print $ rax | grep 41', mówi "Brak symbolu" grep "». Jeśli masz na myśli, że emacs pozwala na wyszukiwanie, to z pewnością nie jest natywnym grep. Grep może być użyty w skrypcie, tzn. Aby punkt obserwacyjny gdb nie zatrzymał się w konkretnej funkcji * (to właśnie próbuję osiągnąć) *. –