table of contents
gdb(1) | Narzędzia GNU | gdb(1) |
NAZWA¶
gdb - Debugger GNU
SKŁADNIA¶
- gdb
- [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c core] [-x cmds] [-d dir] [prog[core|procID]]
OPIS¶
Celem [istnienia] debuggera takiego jak GDB jest umożliwienie ci oglądania, co dzieje się ``w środku'' innego programu podczas jego wykonywania się \mlub co inny program robił w momencie padu.
GDB może robić cztery podstawowe rzeczy (plus inne rzeczy, wspierające te), które mogą być pomocne w wychwytywaniu usterek:
- •
- Uruchomić program, podając wszystko, co może dotyczyć jego zachowania.
- •
- Doprowadzić do zatrzymania programu przy określonych warunkach.
- •
- Sprawdzić co się stało po zatrzymaniu programu.
- •
- Zmienić rzeczy w programie tak, że możesz eksperymentować z poprawianiem efektów jednej usterki, aby przejść dalej i dowiedzieć się czegoś o reszcie.
Możesz używac GDB do debuggowania programów napisanych w C, C++ i Modula-2. Wsparcie dla fortrana zostanie dodane kiedy zostanie ukończony jego kompilator GNU.
GDB wywołuje się poleceniem powłoki gdb. Po uruchomieniu, odczytuje komendy z terminala, aż nie powiesz mu, że kończysz pracę, korzystając z komendy quit. Możesz uzyskać pomoc on-line z samego gdb , wpisując komendę help.
Możesz uruchomić gdb bez argumentów lub opcji; jednak najpopularniejszym sposobem uruchomienia GDB jest jeden lub dwa argumenty, określające program wykonywalny jako argument:
gdb program
Możesz także uruchomić GDB zarówno z plikiem wykonywalnym, jak i z jego plikiem core:
gdb program core
Zamiast tego, możesz podać ID procesu (PID) jako kolejny argument. Robi się tak, kiedy chcesz debuggować pracujący proces:
gdb program 1234
podłączy GDB do procesu 1234 (chyba że posiadasz plik nazwany `1234'; GDB szuka najpierw pliku core).
Oto kilka z najczęściej używanych komend GDB:
- break [file:]function
- Ustaw breakpoint na funkcji function (w pliku file).
- run [arglist]
- Uruchom program (z listą argumentów arglist, jeśli zostanie podana).
- bt
- Backtrace: wyświetl stos programu.
- print expr
- Wydrukuj wartość wyrażenia.
- c
- Kontynuuj wykonywanie programu (po zastopowaniu, np. na breakpointcie).
- next
- Wykonaj następną linię programu (po zastopowaniu); pomiń wszystkie [rozwinięcia] wywołań funkcji w linii.
- step
- Wykonaj następną linię programu (po zastopowaniu); rozwiń każde wywołanie funkcji w linii.
- help [name]
- Pokaż dane o komendzie GDB name, lub ogólne informacje o użyciu GDB.
- quit
- Zakończ pracę z GDB.
Jeśli interesują cię pełne detale obsługi GDB, zobacz Using GDB: A Guide to the GNU Source-Level Debugger, Richarda M. Stallmana i Rolanda H. Pescha. Tenże tekst jest dostępny online jako wpis gdb programu info .
OPCJE¶
Dowolne argumenty inne niż opcje określają plik wykonywalny i plik core (lub ID procesu); tj. pierwszy argument, który jest napotkany bez związanej flagi opcji jest równoważny z opcją `-se' , a drugi jest równoważny z opcją `-c' jeśli jest to nazwa pliku. Wiele opcji ma zarówno długie, jak i krótkie formy; tu pokazane są obydwie. Długie formy są także rozpoznawane, jeśli skrócisz je do długości, w której opcja pozostaje rozstrzygalna. (jeśli wolisz, możesz flagować argumenty opcyjne używając `+' zamiast `-', choć opisujemy bardziej tradycyjną konwencję.)
Wszystkie opcjie i argumenty linii komend, które podajesz, są przetwarzane w sekwencyjnej kolejności. kolejność powoduje różnicę, jeśli zostanie użyta opcja `-x' .
- -help
- -h
- Wylistuj wszystkie opcje, wraz z krótkimi opisami.
- -s file
- Odczytaj tablicę symboli z pliku file.
- -e file
- Użyj pliku file jako pliku wykonywalnego do wykonania kiedy potrzeba i do testowania czystych danych w połączeniu ze zrzutem core.
- -se=file
- Odczytaj tablicę symboli z pliku file i użyj go jako plik wykonywalny.
- -c file
- Użyj pliku file jako zrzut core do porównania.
- -x file
- Wywołaj komendy GDB z pliku file.
- -d directory
- Dodaj katalog directory do ścieżki przeszukiwania plików źródłowych.
- -nx
- -n
- Nie wywołuj komend z żadnego z plików inicjalizacyjnych `.gdbinit' . Normalnie, komendy z tych plików są wykonywane zaraz po przetworzeniu wszystkich argumentów linii komend.
- -quiet
- -q
- ``Cicho''. Nie drukuj wiadomości wprowadzających i o prawach kopiowania. Te wiadomości sa także hamowane w trybie wsadowym.
- -batch
- Uruchom w trybie wsadowym. Zakończ ze statusem 0 po
przetworzeniu wszystkich plików komend podanych w `-x' (i
`.gdbinit', jeśli go nie wyłączono).
Zakończ ze statusem niezerowym jeśli pojawił
się błąd w wywołaniu komend GDB z
plików komend.
Tryb wsadowy może być użyteczny do uruchamiania GDB jako filtru, np. do załadowania i uruchomienia programu na innym komputerze; w celu uczynienia tego bardziej użytecznym, wiadomość
Program exited normally.
(która jest normalnie produkowana za każdym razem, gdy program działający pod kontrolą GDB kończy pracę) nie jest wyświetlana w trybie wsadowym.
- -cd=directory
- Uruchom GDB, używając katalogu directory jako swojego katalogu roboczego, zamiast bieżącego katalogu.
- -fullname
- -f
- Emacs ustawia tę opcję kiedy uruchamia GDB jako podproces. Mówi GDB aby produkował pełną nazwę pliku i numer linii w standardowym, rozpoznawalnym stylu za każdym razem gdy wyświetlana jest klatka stosu (która jest załączana przy każdym zatrzymaniu programu). Ten rozpoznawalny program wygląda jak dwa znaki ` 32' za którymi następuje nazwa pliku, numer linii i pozycja znakowa, oddzielona dwukorpkami i nową linią. Interfejs Emacs-do-GDB używa dwóch znaków ` 32' jako sygnałów do wyświetlenia kodu źródłowego dla klatki.
- -b bps
- Ustaw szybkość linii (baud, lub bity na sekundę) dowolnego interfejsu szeregowego, używanego przez GDB dla zdalnego debuggowania.
- -tty=device
- Uruchom się, używając urządzenia device jako standardowego wejścia i wyjścia programu.
ZOBACZ TAKŻE¶
Wpis `gdb' w info; Using GDB: A Guide to the GNU Source-Level Debugger, Richard M. Stallman i Roland H. Pesch, July 1991.
KOPIOWANIE¶
(Autor nie życzy sobie tłumaczenie poniższej noty bez zatwierdzenia ze strony FSF)
Copyright (c) 1991 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.
4nov1991 | Narzędzia GNU |