gdbserver је програм који омогућује даљинско отклањање грешака у другим програмима. Покреће се на истом систему као и програм који се испитује, што омогућава повезивање ГНУ дибагера из другог система; то јест, само извршна датотека програма који се испитује мора да буде присутна на циљном систему, док се изворни код и копија бинарне датотеке датог програма налазе на локалном рачунару програмера. Веза може бити серијска или путем TCP протокола.

Начин рада уреди

Позив gdbserver-а из командне линије Позив gdb-а из командне линије

gdbserver се покреће на циљном систему, са аргументима:

  • или именом уређаја (који користити серијски везу), или TCP протоколом са адресом сервера (host) и бројем порта (port), и
  • путањом и именом извршне датотеке која се тестира
gdbserver затим пасивно чека да gdb успостави комуникацију са њим.

gdb се покреће на систему клијента, са аргументима:

  • путањом и именом извршне датотеке (и свих изворних датотека) на клијентском систему, и
  • име уређаја (за серијску везу) или IP адреса и број порта потребан за повезивање на циљном систему.
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)

Види још уреди

Спољашње везе уреди