Najbardziej trudne / przydatne polecenia dla debuggera gdb [zamknięty]
Czy możesz publikować swoje najbardziej skomplikowane i przydatne polecenia podczas uruchamiania debuggera, takiego jak gdb lub dbx.
12 answers
- backtrace full : Complete backtrace with local variables
- do góry, down, frame : przesuwanie klatek
- watch : zawiesza proces po spełnieniu określonego warunku
- set print pretty on : wyświetla ładnie sformatowany kod źródłowy C
- set logging on: Log debugging session to show to others for support
- Ustaw tablicę print na : Pretty array drukowanie
- Zakończ : Kontynuuj do końca funkcji
- enable and disable : Enable / disable breakpoints
- tbreak: złamać raz, a następnie usunąć punkt przerwania
- Gdzie : aktualnie wykonywany numer linii
- info locals : wyświetl wszystkie zmienne lokalne
- info args : wyświetl wszystkie argumenty funkcji
- list : Zobacz źródło
- rbreak : break przy dopasowaniu funkcji Wyrażenie regularne
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-01 16:43:21
Uruchom gdb z tekstowym interfejsem użytkownika
gdb -tui
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-27 10:30:08
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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-29 01:18:45
Zamiast uruchamiać GDB za pomocą param "-tui" możesz również przełączyć się w tryb tekstowy po pewnym czasie używając wpisując "wh".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-09 07:53:34
thread apply all bt
LUB thread apply all print $pc
: aby szybko dowiedzieć się, co robią wszystkie wątki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-01 00:04:55
Na przykład makra zdefiniowane w stl-views.gdb
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 12:06:56
Użycie opcji -command=<file with gdb commands>
podczas uruchamiania 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 dany plik wykonywalny musi być poddawany kolejnym uruchomieniom debugowania przy użyciu gdb.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-05 10:22:27
Skryptowanie gdb to dobra sztuczka, poza tym lubię Ustaw włączanie / wyłączanie blokowania harmonogramu, aby zapobiec uruchomieniu innych wątków podczas wchodzenia w jeden.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-10 08:28:53
Zamiast uruchamiać gdb z opcją-tui, aby zobaczyć proces potomny, który zawiera ekran, który podświetla, gdzie znajduje się wykonujący wiersz kodu w twoim programie, przejdź do tej funkcji za pomocą C-x o I C-x A. jest to przydatne, jeśli używasz tej funkcji i co tymczasowo jej nie używać, więc możesz użyć strzałki w górę, aby uzyskać poprzednie polecenie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-02 02:50:08
- za pomocą .gdbinit (Uruchom plik, w którym możesz pisać makra i wywoływać z gdb). Miejsce .gdbinit w katalogu domowym tak, że jest pobierany przy każdym załadowaniu gdb
-
info threads aby wyświetlić listę wszystkich aktywnych wątków i f (#) - > # numer wątku, który chcesz przełączyć na
-
Czasami używam gdb do konwersji z szesnastkowego na dziesiętny lub binarny, jest bardzo przydatny zamiast otwierać Kalkulator
- p / d 0x10 - > daje dziesiętny odpowiednik 0x10
- p / t 0x10 - > binarny odpowiednik 0x10
- p / x 256 -> hex odpowiednik 256
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-13 16:42:24
To może być przydatne, jestem pewien, że można to poprawić choć, pomoc mile widziane:
define mallocinfo
set $__f = fopen("/dev/tty", "w")
call malloc_info(0, $__f)
call fclose($__f)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-20 16:10:45
Aby debugować STL, dodaj zawartość do .gdbinit, wykonaj następujące instrukcje:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-29 11:00:56