Debuger
-------

1. Zadanie

Trzy programy `prog[1-3]' zostana skompilowane po wywolaniu polecenia `make'.
Te programy zawieraja bledy, ktore nalezy znalezc za pomoca debugera `gdb'.

2. Debuger

Wywoluje sie go poleceniem: `gdb program'.
  
Do ustawienia argumentow programu nalezy (wewnatrz debugera) uzyc polecenia:
  set args
  
Na przyklad wywolaniu 
  program -a -b c < d
  
odpowiada wywolanie debugera:
  gdb program
  
i wykonanie z jego wiersza polecen:
  set args -a -b c < d

W debugerze warto pamietac o nastepujacych poleceniach:
  * help - wypisuje sciagawke;
  * quit - konczy prace z debugerem;
  * set args - ustawia argumenty wywolania programu (opisane wyzej);
  * b - ustawia pulapke; np.:
      b
    ustawi pulapke w biezacej linijce programu;
      b 27
    ustawi pulapke w 27. linijce biezacego modulu (pliku zrodlowego);
      b main:18
    ustawi pulapke w 18. linijce pliku main.c;
  * run - uruchamia sledzony program;
  * continue - kontynuuje wykonanie sledzonego programu po zatrzymaniu (np. z
    powodu pulapki); 
  * s - wykonuje instrukcje z biezacej linijki, przechodzac do nastepnej;
    rozwija wywolania procedur;
  * n - wykonuje instrukcje z biezacej linijki, przechodzac do nastepnej;
    nie rozwija wywolan procedur;
  * bt - wypisuje informacje o zawartosci stosu wywolan procedur;
  * list - wypisuje kilka linijek biezacego pliku zrodlowego; mozna podac
    specyfikacje linijki, ktora chcemy obejrzec (tak samo, jak poleceniu b);
  * print - wypisuje wartosc dowolnego wyrazenia (w ktorym moga wystepowac
    nazwy zmiennych programu, a nawet wywolania procedur); skladnia wyrazen
    jest taka sama jak w jezyku C.

3. Uwagi

(a) Aby program mogl byc sledzony przez debuger, nalezy go skompilowac
    z informacja uruchomieniowa (parametr -g kompilatora).

(b) Dla wygodnej pracy z debugerem warto na poczatku (przed uruchomieniem
    programu poleceniem run) ustawic pulapke na poczatku funkcji main, 
    wykonujac polecenie `b main'.
  
