GDB(1) Narzędzia programistyczne GNU GDB(1)

gdb - Debugger GNU

gdb [-help] [-nh] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c core] [-p procID] [-x cmds] [-d dir] [prog|prog procID|prog core]

Celem [istnienia] debuggera takiego jak GDB jest umożliwienie ci oglądania, co dzieje się "środku" innego programu podczas jego wykonywania się -- lub 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++, Fortran i Modula-2.

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

You can, instead, specify a process ID as a second argument or use option "-p", if you want to debug a running process:

gdb program 1234  gdb -p 1234

would attach GDB to process 1234. With option -p you can omit the program filename.

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.
edit [file:]function
look at the program line where it is presently stopped.
list [file:]function
type the text of the program in the vicinity of where it is presently stopped.
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".

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.
-symbols=file
-s file
Odczytaj tablicę symboli z pliku file.
-write
Enable writing into executable and core files.
-exec=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.
-core=file
-c file
Użyj pliku file jako zrzut core do porównania.
-command=file
-x file
Wywołaj komendy GDB z pliku file.
-ex command
Execute given GDB command.
-directory=directory
-d directory
Dodaj katalog directory do ścieżki przeszukiwania plików źródłowych.
-nh
Nie wywołaj komendy z pliku ~/.gdbinit.
-nx
-n
Do not execute commands from any .gdbinit initialization files.
-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 \032 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 \032 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.

The full documentation for GDB is maintained as a Texinfo manual. If the "info" and "gdb" programs and GDB's Texinfo documentation are properly installed at your site, the command

info gdb

powinno dać dostęp do pełnego podręcznika.

Using GDB: A Guide to the GNU Source-Level Debugger, Richard M. Stallman i Roland H. Pesch, lipiec 1991.

Copyright (c) 1988-2021 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "Free Software" and "Free Software Needs Free Documentation", with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below.

(a) The FSF's Back-Cover Text is: "You are free to copy and modify this GNU Manual. Buying copies from GNU Press supports the FSF in developing GNU and promoting software freedom."

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.

19 maja 2021 r. gdb-10.2