Wie debugge ich ein programm auf der dbox2?

Die Unendliche Geschichte: Frequently Asked Questions
obi
Senior Member
Beiträge: 1282
Registriert: Montag 12. November 2001, 00:00

Wie debugge ich ein programm auf der dbox2?

Beitrag von obi »

um es zu vereinfachen, gehe ich mal davon aus, dass das cdkroot in /dbox2/cdkroot liegt, die ip der dbox2 192.168.11.22 ist, der tcp port 1234 auf der dbox2 frei ist und das programm, das debuggt werden soll, /bin/foobar ist.

1.) cdk bauen, wie in INSTALL.en beschrieben. auf keinen fall targetruleset=flash verwenden!

2.) das gebaute cdkroot mit der dbox2 booten.

2.) im cdk verzeichnis:

Code: Alles auswählen

make .gdb .gdb-remote
3.) auf der dbox2:

Code: Alles auswählen

gdbserver 192.168.11.22:1234 /bin/foobar
4.) auf dem pc:

Code: Alles auswählen

powerpc-tuxbox-linux-gnu-gdb /dbox2/cdkroot/bin/foobar
set solib-absolute-prefix /dbox2/cdkroot
set solib-search-path /dbox2/cdkroot/lib
handle SIG32 pass nostop noprint
target remote 192.168.11.22:1234
continue
5.) auf der dbox2 das programm laufen lassen, bis zum absturz.

6.) auf dem pc im gdb eingeben (steht fuer backtrace)
dort kommen dann einige ausgaben, die man entweder mit wissen ueber gdb selbst interpretieren kann oder alternativ hier im forum zeigen kann. oft sind diese backtraces viel sinnvoller als beschreibungen aus menschlicher sicht. es lohnt also :-)

7.) falls die ausgabe sehr kurz ist und etwa aussieht wie

Code: Alles auswählen

#0 0x10000000 in ?? ()
dann folgendes eingeben:

Code: Alles auswählen

set $pc=$lr
bt
gruss,
obi
Zuletzt geändert von obi am Donnerstag 26. Juni 2003, 21:13, insgesamt 3-mal geändert.
Dirch
Senior Member
Beiträge: 394
Registriert: Freitag 9. November 2001, 00:00

Re: Wie debugge ich ein programm auf der dbox2?

Beitrag von Dirch »

obi hat geschrieben:

Code: Alles auswählen

make .gdb .remote-gdb
sollte es nicht

Code: Alles auswählen

make .gdb .gdb-remote
heissen?

Dirch
obi
Senior Member
Beiträge: 1282
Registriert: Montag 12. November 2001, 00:00

Beitrag von obi »

aeh, ja, richtig, danke Dirch :)
habs verbessert.