|
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. |