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

Uruchomienie zdalnego debugowania aplikacji

[lekcja] Rozdział 2. Niniejszy rozdział opisuje w jaki sposób podłączyć się do zdalnego procesu lub aplikacji, uruchomionej na tym samym lub innym urządzeniu.

Wprowadzenie

Pracując z wytwarzanymi aplikacjami czasami zachodzi potrzeba debugowania aplikacji, która znajduje się na innym urządzeniu niż to, na którym kompilujemy kod. Wówczas z pomocą przychodzi nam narzędzie gdbserver, które daje nowe możliwości pracy w zakresie śledzenia błędów w aplikacjach.

Urządzenie zdalne (na którym uruchomiona jest aplikacja)

Uruchamianie aplikacji w trybie zdalnego debugowania

Poniższe polecenie wykonuje się na urządzeniu, na którym uruchamiamy aplikację i chcemy w niej wykrywać błędy:
(konsola) gdbserver :DOWOLNY_PORT_TCP NAZWA_TWOJEJ_APLIKACJI [parametr1] [parametr2] [parametr3]
Przykład:
(konsola) gdbserver :9999 /usr/bin/MojaAplikacjaARM

Uruchamianie zdalnego debuggera na uruchomionym procesie (Linux)

Poniższe polecenie wykonuje się na urządzeniu, na którym uruchomiona jest aplikacja i chcemy w niej wykrywać błędy:
(konsola) gdbserver :DOWOLNY_PORT_TCP --attach IDENTYFIKATOR_PROCESU
Przykład:
(konsola) gdbserver :9999 --attach 3214

Wskazówka
Chcąc podłączyć się do aktualnie uruchomionego procesu na Linuxie, może być konieczne uruchomienie gdbserver za pośrednictwem aplikacji sudo:
(konsola) sudo gdbserver :9999 --attach IDENTYFIKATOR_PROCESU

Urządzenie lokalne (na którym chcemy debugować)

Podłączanie się debuggerem do uruchomionego serwera GDB

(konsola) gdb NAZWA_TWOJEJ_APLIKACJI_Z_PEŁNĄ_SCIEŻKĄ
(gdb) target remote ADRES_IP_URZĄDZENIA_ZDALNEGO:PORT_TCP_PODANY_NA_URZĄDZENIU_ZDALNYM
(gdb) continue
Przykład:
(konsola) gdb /home/DejaVu/projects/Edukacja/Debug/MojaAplikacjaARM
(gdb) target remote 127.0.0.1:9999
(gdb) continue
Zauważ, że ścieżkę do aplikacji podaje się dla urządzenia na którym chcemy debugować, a nie na którym uruchomiona jest aplikacja. Urządzenie zdalne może mieć umieszczony plik w zupełnie innym miejscu. Pamiętaj również, aby aplikacja debugowana była taka sama na urządzeniu zdalnym jak i lokalnym (zgodność binarna plików).

Kończenie debugowania zdalnego

(gdb) detach

Podsumowanie

Teraz już wiesz w jaki sposób można uruchamiać debugger na zdalnej maszynie oraz jak się do niego podłączać. Korzystanie z aplikacji gdbserver umożliwia Ci łatwe zintegrowanie GDB ze środowiskiem programistycznym (np. Code::Blocks), ułatwiającym proces śledzenia błędów w aplikacjach.

Pamiętaj, że:
Aplikację gdbserver można również używać na tej samej maszynie, na której kompiluje się kod. Wiedza ta może się przydać wtedy, gdy zechcemy podłączyć się do uruchomionego procesu, a dostęp do procesu wymaga praw administratora (i zazwyczaj wprowadzenia dodatkowo hasła).
Poprzedni dokument Następny dokument
Uruchomienie lokalnego debugowania aplikacji Konfiguracja GDB