Remotedebugging auf der FB

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
7
Punkte
0
Hallo!

Hat es schonmal jemand geschafft, auf der FB einen Remote-Debugger laufen zu lassen? Wie macht man das? Würde mich mal interessieren, da größere Projekte ohne IDE schwer zu entwickeln sind. Welche IDE könnt ihr mir empfehlen (für C/C++)? Ich hab mir mal Eclipse angeschaut, fühlt sich aber noch etwas holprig an...
 
Hi.
Du brauchst den gdbserver aus dem gdb-Package. Den musst du auf der Fritz starten (./gdbserver -options ./binary). Der Server öffnet einen Port und wartet auf die Verbindung.
Jetzt brauchst gdb auf dem Host und der muss für mipsel-linux gebaut sein. Es geht also nicht der "Normale". Dann muss man dem noch sagen wo die shared-Libraries sind. Oder man debugt gleich ein static binary. Außerdem darf das Binary natürlich nicht gestrippt sein und CFLAGS+=-g
Leider hab ich es mit GUI auf noch nicht so richtig hinbekommen. Mit ddd stürzt die ganze Sache andauernd ab und mit Eclipse vergisst er laufend die Debbuging-Options.

MfG Oliver
 
Danke.

Ich werd dann mal ein wenig probieren... schade, das Eclipse die einzige Alternative scheint.
 
Hier gibts eine Anleitung für den ddd. Und Eclipse fänd ich gut, wenn es denn richtig funktionieren würde...

MfG Oliver
 
Mhh.. ich versuch gerad den gdb 6.5 zu kompilieren.
Das schlägt aber bei termcap fehl. Hab jetzt termcap kompiliert, aber der Fehler kommt immer noch. Lass ich termcap aus dem configure-script weg, kommen viele undefiened references (irgendwie klar ;))
Den gdbserver hab ich bereits. Jetzt fehlt noch gdb.

EDIT:
ich probier mal ncurses.

EDIT:
ok, ncurses bringt auch nicht viel mehr.

Code:
checking for libunwind-ia64.h... (cached) no
checking for monstartup... (cached) yes
checking for _mcleanup... (cached) yes
checking for _etext... (cached) yes
checking for gawk... (cached) gawk
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for mipsel-linux-ranlib... (cached) mipsel-linux-ranlib
checking for bison... (cached) bison -y
checking for mipsel-linux-ar... (cached) mipsel-linux-ar
checking for mipsel-linux-dlltool... (cached) mipsel-linux-dlltool
checking for mipsel-linux-windres... (cached) mipsel-linux-windres
checking for mipsel-linux-mig... no
checking for mig... no
checking for main in -lm... (cached) yes
checking for wctype... (cached) no
checking for wctype in -lw... (cached) no
checking for library containing gethostbyname... (cached) none required
checking for library containing socketpair... (cached) none required
checking for library containing waddstr... (cached) no
checking for library containing tgetent... (cached) no
configure: error: no termcap library found
make[1]: *** [configure-gdb] Fehler 1
make[1]: Leaving directory `/home/maz/gdb-6.5'
make: *** [all] Fehler 2
 
Zuletzt bearbeitet:
Das lässt mir auch keine Ruhe ;)
Hab's nun hingekriegt:

Code:
mipsel-linux-gcc -g -O2       \
                -o gdb gdb.o libgdb.a \
                  ../sim/mips/libsim.a ../readline/libreadline.a \
../opcodes/libopcodes.a ../bfd/libbfd.a  ../libiberty/libiberty.a     \
-lm  ../libiberty/libiberty.a  -ldl -rdynamic [COLOR="Red"]-lncurses[/COLOR]

ncurses hat er zwar nicht gefunden, konnte das aber damit hinbiegen.
 
Kann es sein, dass der gdb nicht für mipsel-linux kompiliert werden muss, sondern nur als target angegeben wird?
 
Äh, ja. Hab ich mich da falsch ausgedrückt? Der gdbserver muss auf der Fritz laufen, der gdb läuft auf dem Host.

MfG Oliver
 
So.. hab mir nun ddd angeschaut und funktioniert auch ganz gut (solange "All Signals stop" nicht gewählt wird).
Problem ist nur, dass der gdbserver sich hin und wieder beendet. Das kriegt man aber über ein Skript hin.

Anonsten eine tolle Sache :)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.