info locals- Zobacz wszystkie zmienne lokalne; lista - zobacz źródło; rbreak - przerwa w funkcji pasującej do wyrażenia regularnego.
Paul Biggar
source / path / to / macro / file I wszystkie moje fajne makra pomagają mi debugować w kilka sekund.
Sudhanshu
1
set print object ondla elementów polimorficznych i set print elements 0są to dwa polecenia, których używam bardzo często. Całkiem przydatne.
Kiril Kirov,
1
Również t a a bt(znaczenie thread apply all backtrace). Może być używany z (prawie) wszystkimi innymi poleceniami. Szczególnie przydatne w przypadku bt full.
Począwszy od GDB 7.0, istnieje odwracalne debugowanie , więc Twoje nowe ulubione polecenia to:
* reverse-continue('rc')--Continue program being debugged but run it in reverse
* reverse-finish --Execute backward until just before the selected stack frame is called
* reverse-next ('rn')--Step program backward, proceeding through subroutine calls.* reverse-nexti ('rni')--Step backward one instruction, but proceed through called subroutines.* reverse-step ('rs')--Step program backward until it reaches the beginning of a previous source line
* reverse-stepi --Step backward exactly one instruction
*set exec-direction (forward/reverse)--Set direction of execution.
Korzystanie z -command=<file with gdb commands>opcji podczas odpalania gdb. Tak samo jak -x <command file>. Ten plik poleceń może zawierać polecenia gdb, takie jak punkty przerwania, opcje itp. Przydatne w przypadku, gdy określony plik wykonywalny musi zostać poddany kolejnym uruchomieniom debugowania przy użyciu gdb.
Możesz także użyć -iexopcji dodawania poszczególnych poleceń w wierszu poleceń gdb.
doug65536
5
skrypty gdb to dobra sztuczka, poza tym lubię włączać / wyłączać blokowanie harmonogramu, aby zapobiec uruchamianiu innych wątków, gdy wchodzisz w jeden.
jak ustawić to jako domyślne? Próbowałem .gdbinit, ale gdb drukuje /home/omry/.gdbinit:1: Błąd w źródłowym pliku poleceń: Cel „Brak” nie obsługuje tego polecenia.
Omry Yadan
4
Za pomocą .gdbinit (plik startowy, w którym możesz pisać makra i wywoływać z gdb). Umieść plik .gdbinit w swoim katalogu domowym, aby był pobierany za każdym razem, gdy ładowany jest plik gdb
info wątki, aby wyświetlić wszystkie aktywne wątki, if (#) -> # numer wątku, do którego chcesz się przełączyć
czasami używam gdb do konwersji z szesnastkowego na dziesiętny lub binarny, jest to bardzo przydatne zamiast otwierania kalkulatora
Zamiast uruchamiać gdb z opcją -tui, aby zobaczyć proces potomny, który zawiera ekran, który podkreśla, gdzie wykonywana linia kodu znajduje się w twoim programie, wskakuj i wychodź z tej funkcji za pomocą Cx o i Cx a. Jest to przydatne, jeśli używasz tej funkcji i tymczasowo jej nie używać, aby można było użyć strzałki w górę, aby uzyskać poprzednie polecenie.
Odpowiedzi:
źródło
info locals
- Zobacz wszystkie zmienne lokalne; lista - zobacz źródło; rbreak - przerwa w funkcji pasującej do wyrażenia regularnego.set print object on
dla elementów polimorficznych iset print elements 0
są to dwa polecenia, których używam bardzo często. Całkiem przydatne.t a a bt
(znaczeniethread apply all backtrace
). Może być używany z (prawie) wszystkimi innymi poleceniami. Szczególnie przydatne w przypadkubt full
.Uruchom gdb z tekstowym interfejsem użytkownika
źródło
Począwszy od GDB 7.0, istnieje odwracalne debugowanie , więc Twoje nowe ulubione polecenia to:
źródło
Zamiast uruchamiać GDB z parametrem „-tui”, możesz po chwili przełączyć się w tryb tekstowy, wpisując „wh”.
źródło
Ctrl-a a
? To żart? Wygląda bardziej jaktmux
/screen
command. I nie działa dla mnie. To musi być jeden , jak za docs :C-x C-a
,C-x a
,C-x A
.C-x a
. Możesz także przełączać widoki za pomocąC-x 1
iC-x 2
w trybie tui, aby zobaczyć również montaż (w razie potrzeby).thread apply all bt
lubthread apply all print $pc
: Aby szybko dowiedzieć się, co robią wszystkie wątki.źródło
Na przykład makra zdefiniowane w stl-views.gdb
źródło
Korzystanie z
-command=<file with gdb commands>
opcji podczas odpalania gdb. Tak samo jak-x <command file>
. Ten plik poleceń może zawierać polecenia gdb, takie jak punkty przerwania, opcje itp. Przydatne w przypadku, gdy określony plik wykonywalny musi zostać poddany kolejnym uruchomieniom debugowania przy użyciu gdb.źródło
-iex
opcji dodawania poszczególnych poleceń w wierszu poleceń gdb.skrypty gdb to dobra sztuczka, poza tym lubię włączać / wyłączać blokowanie harmonogramu, aby zapobiec uruchamianiu innych wątków, gdy wchodzisz w jeden.
źródło
set scheduler-locking on
inside gdbinfo wątki, aby wyświetlić wszystkie aktywne wątki, if (#) -> # numer wątku, do którego chcesz się przełączyć
czasami używam gdb do konwersji z szesnastkowego na dziesiętny lub binarny, jest to bardzo przydatne zamiast otwierania kalkulatora
źródło
Zamiast uruchamiać gdb z opcją -tui, aby zobaczyć proces potomny, który zawiera ekran, który podkreśla, gdzie wykonywana linia kodu znajduje się w twoim programie, wskakuj i wychodź z tej funkcji za pomocą Cx o i Cx a. Jest to przydatne, jeśli używasz tej funkcji i tymczasowo jej nie używać, aby można było użyć strzałki w górę, aby uzyskać poprzednie polecenie.
źródło
focus cmd
aby działały strzałki w górę / w dół. Przełączasz się z powrotem za pomocąfocus src
.Może to być przydatne, ale jestem pewien, że można to poprawić, pomóżcie powitać:
źródło
Aby debugować STL, dodaj zawartość do .gdbinit, postępuj zgodnie z następującymi instrukcjami:
http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
źródło