Remotedebugging auf der FB

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
2
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...
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
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
 

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
2
Punkte
0
Danke.

Ich werd dann mal ein wenig probieren... schade, das Eclipse die einzige Alternative scheint.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Hier gibts eine Anleitung für den ddd. Und Eclipse fänd ich gut, wenn es denn richtig funktionieren würde...

MfG Oliver
 

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
2
Punkte
0
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:

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
2
Punkte
0
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.
 

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
2
Punkte
0
Kann es sein, dass der gdb nicht für mipsel-linux kompiliert werden muss, sondern nur als target angegeben wird?
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Ä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
 

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
2
Punkte
0
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 :)
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,866
Beiträge
2,027,519
Mitglieder
350,979
Neuestes Mitglied
osterm29