2009-06-25 10 views
1

Le programme gdbserver permet le débogage à distance des programmes. Généralement, une copie locale de gdb est utilisée pour interagir avec l'instance gdbserver distante et le programme s'exécutant sous ce gdbserver distant.Interaction avec programmation avec gdbserver

Ma question est la suivante: Y a-t-il des implémentations client du gdb remote serial protocol (RSP) qui permettent à des programmes autres que gdb d'interagir avec le programme gdbserver?

Ce document traite de la mise en œuvre d'un RSP server, mais il est du côté client que je suis avant tout intéressé. Ce implementation prend en charge le client et le serveur, mais est mis en œuvre en Common Lisp, et n'est pas encore une bibliothèque mature.

Répondre

1

Je ne connais aucun client du protocole GDB.

Pourquoi voudriez-vous un?

Pour les tâches simples (démarrage, arrêt, examen des adresses de mémoire), vous pouvez en écrire un à partir de rien assez rapidement.

Pour les tâches compliquées (déroulement de la pile, examen des variables, etc.), vous devez réimplanter des parties importantes de la base de données de gestion; et cela ne devrait probablement pas être tenté sans une très bonne raison.

Notez également que le protocole GDB/gdbserver est en constante évolution; il y a des dispositions pour permettre à GDB plus récent de traiter gdbserver plus ancien, mais je ne suis pas sûr que l'inverse soit également vrai.

+0

Tous les bons points; J'ai décidé de contrôler un GDB local via l'interface machine GDB, et de laisser le GDB local interagir avec le gdbserver distant – grrussel

5

Le protocole gdb à distance est entièrement documentée dans le manuel de GDB, qui est disponible en ligne à http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html

Vous avez gdb à regarder comme un exemple de travail - cela devrait être suffisant pour vous permettre d'écrire un client pour contrôler gdbserver sur le protocole série. ;-)