Pređi na sadržaj

gdbserver

S Vikipedije, slobodne enciklopedije

gdbserver je program koji omogućuje daljinsko otklanjanje grešaka u drugim programima. Pokreće se na istom sistemu kao i program koji se ispituje, što omogućava povezivanje GNU dibagera iz drugog sistema; to jest, samo izvršna datoteka programa koji se ispituje mora da bude prisutna na ciljnom sistemu, dok se izvorni kod i kopija binarne datoteke datog programa nalaze na lokalnom računaru programera. Veza može biti serijska ili putem TCP protokola.

Način rada[uredi | uredi izvor]

Poziv gdbserver-a iz komandne linije Poziv gdb-a iz komandne linije

gdbserver se pokreće na ciljnom sistemu, sa argumentima:

  • ili imenom uređaja (koji koristiti serijski vezu), ili TCP protokolom sa adresom servera (host) i brojem porta (port), i
  • putanjom i imenom izvršne datoteke koja se testira
gdbserver zatim pasivno čeka da gdb uspostavi komunikaciju sa njim.

gdb se pokreće na sistemu klijenta, sa argumentima:

  • putanjom i imenom izvršne datoteke (i svih izvornih datoteka) na klijentskom sistemu, i
  • ime uređaja (za serijsku vezu) ili IP adresa i broj porta potreban za povezivanje na ciljnom sistemu.
remote$ gdbserver :2345 hello_world
Process hello_world created; pid = 2509
Listening on port 2345
local$ gdb -q hello_world
Reading symbols from /home/user/hello_world...done.
(gdb) target remote 192.168.0.11:2345
Remote debugging using 192.168.0.11:2345
0x002f3850 in ?? () from /lib/ld-linux.so.2
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x08048414 in main () at hello_world.c:10
10	        printf("x[%d] = %g\n", i, x[i]);
(gdb)

Vidi još[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]