Home

Szukaj

Statystyka

gości: 22571

Polls

Czy podoba Ci się ta strona?
 
Debugowanie programów w linuksie.
        Do debugowanie programów w linuksie służy program gdb. Jest to program uruchamiany z konsoli poleceniem jak nie trudno się domyślić gdb nawa_pliku. Pokaże na przykładzie jak użyć tego narzędzia. Najpierw napiszmy sobie prosty program w c
int main()
{
   char title[]="Hello world";
   int a,b,c;
   a=34;
   b=22;
   c=a*b;
   printf("%s,result: %d\n",title,c);
   return 0;
}
Następnie kompilujemy program:
gcc -g -o test main.c
Opcja -g powoduje dodanie informacji dla debuggera. Dodawaj ją tylko wtedy gdy chcesz debugować program inaczej powoduje nie potrzebny wzrost wielkości programu.
Odpalamy gdb
gdb test
Pojawi nam się linia poleceń programu gdb, podstawowe komendy to:
r – uruchom program
s – krok
n – krok bez wchodzenia do funkcji
print - wyświetla wartość zmiennej
b – ustawia punkt przerwania
enter – powtórzenie ostatniej komendy

Naciśniecie r uruchomi program, aby jednak przydał się bardziej należy ustawić punkt przerwania:
(gdb) b main
Breakpoint 1 at 0x8048355: file main.c, line 5.
Ustawia punkt przerwania na funkcji main. Teraz wykonujemy r.
(gdb) r
Starting program: /home/brass/test
Breakpoint 1, main () at main.c:5
5 char title[]="Hello world";
Teraz naciskając s widzimy kolejne linie programu wraz z ewentualnym efektem ich działania
(gdb) s
7 a=34;
(gdb)
8 b=22;
(gdb)
9 c=a*b;
(gdb)
10 printf("%s,result: %d\n",title,c);
(gdb)
Hello world,result: 748
11 return 0;
(gdb) print c
$1 = 748
(gdb)
Jak widzimy na końcu wyświetliliśmy wartość zmiennej c. Program gdb ma wiele innych opcji i możliwości. Zachęcam do zapoznania się z man gdb oraz info gdb.
 
« poprzedni artykuł   następny artykuł »