Zitat von
mse1:
Die Kommunikation mit gdb ist in tgdbmi aus
unit lib/common/designutils/gdbutils.pas gekapselt.
Das Starten der debug-Umgebung passiert in apps/
ide/main.pas, tmainfo.loadexec().
Danke für diese Auskunft! Muss ich mir zunächst ganz in Ruhe anschauen, die Quellen studieren und verstehen. So möchte ich eine Auskunft haben. So kann ich das konkrete Verzeichnis aufsuchen wo die angegebene
Unit liegt und in dieser die genannte Methode suchen und den Quelltext studieren. Leider ist dort aber nur der Aufruf des GDB Interfaces implementiert. Muss also den Quelltext erst mal in Ruhe studieren. So einen Client brauche ich später.
Zitat:
gdb -ex "target remote
localhost:4242" testprog
Das war das noch fehlende Teil im "Puzzle".
Ich hatte diese Zeile vorher ohne -ex Option und das target remote... Kommando nicht in Anführungszeichen gesetzt.
Jetzt kann dich den GDB mit Portunterstützung starten, wie ich ich es haben wollte. Habe mir die Kurzdoku von dem Sourceware-Link als Textdatei in mein gdb Verzeichnis kopiert, um später da nachlesen zu können.
Zitat:
Ich verstehe nicht ganz was du schlussendlich erreichen willst?
Ich will den GDB als Debugserver verwenden. Egal ob mit oder ohne gdbserver. Will einen Debugclient bauen, wie Kdbg einer ist. Kdbg läuft aber nach meinem Wissen nur unter Linux. Ich will ihn aber für Windows haben.
Wozu aber hierzu einen eigenen Debugger schreiben, wenn es doch dafür GDB gibt. Der braucht nur seine Debuginfos an meinen Client weiterleiten, wo sie passend angezeigt wird.
Werde aber in meiner mseide die Debuggereinstellungen wie im Screenshot angegeben übernehmen, falls nicht schon eingestellt, damit der GDB auch mit dieser
IDE funzt.
Zitat:
gdb läuft in der Regel auf dem lokalen Rechner und kommuniziert z.B. mittels
TCP/
IP mit gdbserver auf dem entfernten Rechner. Falls gdb auf dem entfernten Rechener läuft, braucht es keinen gdbserver, dafür eine Terminal-Verbindung mit dem entfernten Rechner, beispielsweise
SSH. Ich weiss aber nicht, ob SuseBuildService diese Möglichkeiten bietet. Ich würde mal auf der Mailingliste fragen, falls die BuildService Dokumentation darüber keine Auskunft gibt.
So zu sagen gibt es also viele Möglichkeiten, den GDB von einem entfernten Programm aus anzusteuern. Ich habe mich für die
TCP/
IP Variante entschieden, weil die auf allen Plattformen verfügbar ist. Und weil mit den
Indy Komponenten, die es sowohl für Linux als auch für Windows und hier sowohl für Delphi als auch für Freepascal gibt, eine portable Schnittsetelle zum GDB herstellbar ist.
@sx2008:
Danke auch Dir für die ausführliche Erklärung:
Die Bedeutung der verschiedenen
IP Adressen ist eine wichtige Information für mein Vorhaben!
Jetzt bin ich aber dran:
Werde nun erst mal die GDB Doku studieren und auch mit der
Indy Komponente IdTCPClient rumspielen.
Dann werd ich schauen, welche Kommunikationsvariante ich auswähle.
Danke Euch nochmals für die bereitwillige, zielführende Hilfe.
.