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¶
Uwaga! To tłumaczenie może być nieaktualne!
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.
Powyższe tłumaczenie pochodzi z nieistniejącego już
Projektu Tłumaczenia Manuali i
może nie być
aktualne. W razie zauważenia różnic między
powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub
funkcji, prosimy o zapoznanie się z oryginalną
(angielską) wersją strony podręcznika za pomocą
polecenia:
- man --locale=C 1 gdb
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.