Odpowiedzi:
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 i set print elements 0
są to dwa polecenia, których używam bardzo często. Całkiem przydatne.
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
.
Uruchom gdb z tekstowym interfejsem użytkownika
gdb -tui
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.
Zamiast uruchamiać GDB z parametrem „-tui”, możesz po chwili przełączyć się w tryb tekstowy, wpisując „wh”.
C-x a
. Możesz także przełączać widoki za pomocą C-x 1
i C-x 2
w trybie tui, aby zobaczyć również montaż (w razie potrzeby).
Na przykład makra zdefiniowane w stl-views.gdb
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.
-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.
set scheduler-locking on
inside 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.
focus cmd
aby działały strzałki w górę / w dół. Przełączasz się z powrotem za pomocą focus src
.
Aby debugować STL, dodaj zawartość do .gdbinit, postępuj zgodnie z następującymi instrukcjami: