Wenn jemand das schreiben will...Wie wäre es, wenn man statt der gdb->gdbserver - Verbindung eine (TCP/IP-) Kommunikation zwischen der Lazarus IDE (mittels einer neuen "remotedebugger"-Klasse) und einem neuen mit Lazarus geschriebenen Oberflächen-losen "Debugserver" Programm macht. Dabei würde das "Debugserver" Programm die normale (nicht remote) gdb-koppel Klasse und damit den normalen gdb des Zielsystems verwenden.
Man würde also "nur" das komplette Interface zwischen der gdb-Klasse und der IDE über einen TCP/IP-Stream remoten. Es wäre also nur ganz normaler Pascal-Code zu bauen. Auf Besonderheiten des gdb braucht dabei keine Rücksicht genommen zu werden.
Wenn die gdb-Klasse selber ein User-Interface hat, muss es natürlich über derselben Stream remoteted werden, die Klasse sollte dazu zunächst in eine Oberflächen-lose "Business-Logik" und eine "GUI"-Klasse aufgeteilt werden, ohne dass sich die Funktion in irgendeiner Weise ändert. Das Interface kann dann gestreamt werden.
Damit sollte es doch möglich sein, die komplette Funktionalität zu erhalten und auf dem Zielsystem ist es nicht notwendig, einen gdbserver zur Verfügung zu stellen.
Können wir ja 'mal im Forum (welchem auch immer) diskutieren.
Die GDB Server Klasse zu fixen ist wesentlich weniger Arbeit und zudem ggf auch fuer normale GDB nuetzlich.
GDB kennt (in gdb Server, und auf einigen, aber nicht allen Plattformen auch im gdb) einen async mode
Anstatt von "r" (run) kann man "r &" senden. Dann kann man waehrend die app laueft "interuupt" senden, um die app zu pausieren. Derzeit muss man ausserhalb von GDB ein Signal senden. (Und das geht nur local)
Einen eigenen GDB server (selbst wenn auf Lazarus Features reduziert) zu schreiben ist sehr viel aufwendiger.