gdbserver es un programa informático que permite depurar otros programas de forma remota . [1] Al ejecutarse en el mismo sistema que el programa a depurar, permite que el depurador GNU se conecte desde otro sistema; es decir, solo el ejecutable que se va a depurar debe residir en el sistema de destino ("destino"), 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
gdbserver
se 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 de archivo del ejecutable que se va a depurar.
- Luego espera pasivamente a que el host gdb se comunique con él.
gdb
se ejecuta en el host, con los argumentos:- La ruta y el nombre de archivo del ejecutable (y cualquier fuente) en el host, y
- Un nombre de dispositivo (para una línea serie) o la dirección IP y el número de puerto necesarios para la conexión al sistema de destino.
Ejemplo para depurar un programa llamado hello_world
en un destino remoto usando TCP ("2159" es el número de puerto TCP registrado para GDB remoto ):
remote @ ~ $ gdbserver: 2159 hello_world Proceso creado hello_world; pid = 2509 escuchando en el puerto 2159
local @ ~ $ gdb -q hello_world Leyendo símbolos de /home/user/hello_world...done. (gdb) destino remoto 192.168.0.11:2159 Depuración remota usando 192.168.0.11:2159 0x002f3850 en ?? () de /lib/ld-linux.so.2 (gdb) continúe Continuando.Programa recibido 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 código auxiliar remoto . [2] [ aclaración necesaria ] En este caso, el programa que se va a depurar está vinculado con algunas subrutinas de propósito especial que implementan el protocolo serial remoto GDB. El archivo que contiene estas subrutinas se denomina "código auxiliar de depuración".
Ver también
Notas
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