2009-06-25 15 views
1

Das gdbserver-Programm ermöglicht das Remote-Debuggen von Programmen. In der Regel wird eine lokale Kopie von gdb verwendet, um mit der fernen gdbserver-Instanz und dem Programm, das unter diesem fernen gdbserver ausgeführt wird, zu interagieren.Programmatische Interaktion mit gdbserver

Meine Frage ist: Gibt es Client-Implementierungen der gdb remote serial protocol (RSP), die andere Programme als gdb mit dem Programm gdbserver interagieren lassen?

Dieses Dokument beschreibt die Implementierung einer RSP server, aber es ist die Client-Seite, die ich in erster Linie interessiert. Diese implementation unterstützt Client und Server, ist aber in Lisp implementiert, und ist noch nicht eine ausgereifte Bibliothek.

Antwort

1

Ich kenne keine Clients des GDB-Protokolls.

Warum möchten Sie eins?

Für einfache Aufgaben (Starten; Stoppen; Überprüfen von Speicheradressen) kann man ziemlich schnell von Grund auf neu schreiben.

Für komplizierte Aufgaben (Abwickeln des Stapels, Untersuchen von Variablen usw.) müssten Sie wichtige Teile von GDB erneut implementieren; und das sollte wahrscheinlich nicht ohne einen sehr guten Grund versucht werden.

Beachten Sie auch, dass das GDB/gdbserver Protokoll sich ständig weiterentwickelt; Es gibt Bestimmungen, um neuere GDB mit älteren gdbserver umgehen zu lassen, aber ich bin mir nicht sicher, ob das Gegenteil auch zutrifft.

+0

Alle guten Punkte; Ich habe beschlossen, eine lokale GDB über die GDB-Maschinenschnittstelle zu steuern und die lokale GDB mit dem entfernten gdbserver interagieren zu lassen – grrussel

5

Das Fern GDB-Protokoll in dem GDB Handbuch vollständig dokumentiert ist, die bei http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html online verfügbar ist

Sie haben gdb an als Arbeits Beispiel aussehen - diese sollten Sie erlauben genug sein, um einen Client zu schreiben gdbserver über das serielle Protokoll zu steuern. ;-)