Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: Piotr Szawdyński
Biblioteki C++

Poruszanie się po callstacku i przełączanie się między wątkami

[lekcja] Rozdział 6. Niniejszy rozdział przedstawia w jaki sposób poruszać się po stosie wywołań metod i funkcji w debuggerze GDB.

Wyświetlanie listy ramek stosu

Jak już zapewne wiesz z jednego ze wcześniejszych rozdziałów, listę ramek odłożonych na stosie dla bieżącego wątku wyświetla się za pomocą polecenia backtrace. Przykład:
(gdb) backtrace

Przełączanie się do określonej ramki stosu

Do przełączania się do konkretnej ramki stosu służy polecenie frame numer_ramki.Przykład:
(gdb) frame 1

Przechodzenie do wcześniejszej ramki stosu

Jeżeli chcesz przełączyć się do wcześniejszej ramki stosu (tj. przejść do miejsca w kodzie z którego wywołano funkcję lub metodę) to skorzystaj wówczaz z polecenia up. Przykład:
(gdb) up

Przechodzenie do późniejszej ramki stosu

Jeżeli chcesz przełączyć się do późniejszej ramki stosu (tj. wejść do środka funkcji jaka została wywołana w bieżącej funkcji) to skorzystaj z polecenia down. Przykład:
(gdb) down

Wyświetlanie listy wątków

Aby wyświetlić listę aktualnie uruchomionych wątków aplikacji należy użyć polecenia info threads. Przykład:
info threads

Przełączanie się między wątkami

Aby przełączyć się na stos ramek należący do innego wątku, należy użyć polecenia thread numer_wątku. Przykład:
(gdb) thread 1
Poprzedni dokument Następny dokument
Wyświetlanie wartości zmiennych Modyfikowanie działania aplikacji