gdbserver es un programa informático que permite depurar remotamente otros programas. [1] Al ejecutarse en el mismo sistema que el programa que se va a depurar, permite que GNU Debugger se conecte desde otro sistema; es decir, sólo el ejecutable que se va a depurar necesita residir en el sistema de destino ("target"), mientras que el código fuente y una copia del archivo binario que se va a depurar residen en la computadora local del desarrollador ("host"). La conexión puede ser TCP o una línea serial.
Cómo funciona
gdbserverse lanza en el sistema de destino, con los argumentos:- Ya sea un nombre de dispositivo (para usar una línea serial) o un nombre de host TCP y un número de puerto, y
- La ruta y el nombre del archivo ejecutable que se va a depurar
- Luego espera pasivamente que el host gdb se comunique con él.
gdbse ejecuta en el host, con los argumentos:- La ruta y el nombre del archivo ejecutable (y cualquier fuente) en el host, y
- Un nombre de dispositivo (para una línea serial) o la dirección IP y el número de puerto necesarios para la conexión al sistema de destino.
Ejemplo de depuración de un programa llamado hello_worlden un destino remoto mediante TCP ("2159" es el número de puerto TCP registrado para GDB remoto ):
remoto@~$ gdbserver :2159 hello_world
Proceso hello_world creado; pid = 2509
Escuchando en el puerto 2159
local@~$ gdb -q hello_world
Leyendo símbolos de /home/user/hello_world...hecho.
(gdb) target remote 192.168.0.11:2159
Depuración remota usando 192.168.0.11:2159
0x002f3850 en ?? () desde /lib/ld-linux.so.2
(gdb) continue
Continuando.
El programa recibió la señal SIGSEGV, Fallo de segmentación.
0x08048414 en main() en hello_world.c:10
10 printf("x[%d] = %g\n", i, x[i]);
(gdb)
Alternativas
Otra técnica para depurar programas de forma remota es utilizar un stub remoto . [2] [ aclaración necesaria ] En este caso, el programa que se va a depurar se vincula con algunas subrutinas de propósito especial que implementan el protocolo serial remoto GDB. El archivo que contiene estas subrutinas se denomina "stub de depuración".
Véase también
Notas
- ^ Manual del BGF
- ^ Depuración con GDB
Referencias
- Andreas Zeller: Por qué fallan los programas: una guía para la depuración sistemática , Morgan Kaufmann, 2005. ISBN 1-55860-866-4
Enlaces externos
- Página de inicio del BGF
- Depuración con GDB