Interazione programmatica con gdbserver
-
20-08-2019 - |
Domanda
Il programma gdbserver consente il debug remoto dei programmi. In genere, una copia locale di gdb viene utilizzata per interagire con l'istanza gdbserver remota e il programma in esecuzione sotto quel gdbserver remoto.
La mia domanda è: ci sono implementazioni client del gdb remote serial protocol (RSP) che consente a programmi diversi da gdb di interagire con il programma gdbserver?
Questo documento tratta l'implementazione di un server RSP , ma è il lato client che mi interessa principalmente. Questa implementazione supporta client e server, ma è implementato in lisp comune e non è ancora una libreria matura.
Soluzione
Non sono a conoscenza di alcun client del protocollo GDB.
Perché dovresti volerne uno?
Per attività semplici (avvio; arresto; esame degli indirizzi di memoria) puoi scriverne uno da zero abbastanza rapidamente.
Per compiti complicati (svolgendo stack, esaminando variabili, ecc.) dovresti implementare nuovamente parti significative di GDB; e questo probabilmente non dovrebbe essere tentato senza un motivo molto valido.
Si noti inoltre che il protocollo GDB / gdbserver è in continua evoluzione; ci sono disposizioni per consentire al nuovo GDB di gestire il vecchio server gdbserver, ma non sono sicuro che sia vero anche il contrario.
Altri suggerimenti
Il protocollo gdb remoto è completamente documentato nel manuale gdb, disponibile online all'indirizzo http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html
Devi guardare gdb come esempio funzionante - questo dovrebbe essere sufficiente per permetterti di scrivere un client per controllare gdbserver tramite il protocollo seriale. ; -)