Forum: Compiler & IDEs probleme bei simulation/debugging


von thomasb (Gast)


Lesenswert?

hallo,

ich habe ein seltsames verhalten bei der simulation/debugging von
meinem C-source. ich verwende winavr-20030913 und avr-studio V4.08
build 310.

wenn ich das programm step-by step (F10) durchsteppe, sehe ich im
watch-fenster den inhalt der variablen nicht. ich habe z.b. zuweisung
i=inp(PINA), und i ist lt. quickwatch immer 0 ...

interrestanterweise dürfte der programmablauf korrekt verlaufen, da in
die jeweiligen if-verzweigungen richtig gesprungen wird.

beim setzen der port-pins, muß ich die pins im PORTA register setzen,
damit das äquvalente bit im PINA auch gesetzt bzw. gelöscht wird. ist
das normal?

da mir die umgebung avr-studio an sich zusagt, bin ich nahe daran, auf
assembler umzusteigen, da ich vermute, daß dieses seltsame verhalten
mit der einbindung von c-programmen zusammenhängt. natürlich erzeuge
ich die ext-coff datei :-)

vielleicht hat jemand eine idee, wie ich meine programme besser
simulieren bzw. debuggen kann. C kann ich ziemlich gut, daher
bervorzuge ich natürlich diese sprache.

besten dank,
thomas

von mthomas (Gast)


Lesenswert?

mglw. liegt es an der Optimiertung des Compilers, der die "Variable
wegoptimiert" und dann kein Symbol mehr dafuer anlegt. Testweise mal
mit einer niedrigeren Optimierungsstufe ausprobieren.
Weiterhin: streiche i=inp(PINA) da veraltet, setze i=PINA

von Jörg Wunsch (Gast)


Lesenswert?

Vermute ich ebenfalls.  Wenn jemand die Zeit hat, für so'n Kleinkram
von C auf Assembler zurückgehen zu wollen, tut er mir fast leid. :-))

Btw., auf http://gcc.gnu.org/ kann man lesen:

February 6, 2004

Josef Zlomek of SUSE Labs and Daniel Berlin of IBM Research have
contributed Variable Tracking. It generates more accurate debug info
about locations of variables and allows debugging code compiled with
-fomit-frame-pointer.

Interessant, das könnte derartige Probleme in Zukunft beseitigen,
wenngleic ich bezweifle, daß AVR Studio auf absehbare Zeit von so
einem Feature Nutzen schlagen wird ;-).  Aber GDB wird das dann sicher
bald können.

von thomasb (Gast)


Lesenswert?

@jörg:

ich brauche dir nicht leid zu tun:

1.) ich habe nicht die zeit, um mir die bedienung von tools, die
unzweifelhaft genial sind anzueignen. da erscheint es mir einfacher,
von c auf assembler umzusteigen, da die erlernung eines
programmsprachendialektes für mich einfacher ist, als das hantieren mit
verschiedenen tools. für mich ist die programmierung arbeit und nicht
hobby, und ich bin nicht interessiert, da viel zeit reinzustecken. ich
gehe da eher nach dem kaüfmännischen prinzip vor: "mit dem
geringmöglichsten aufwand den größtmöglichen erfolg erzielen" - und
für mich bedeutet erfolg ein funktionierendes programm und nicht das
beherrschen von alternativen tools. avr-studio ist eine simpel zu
bedienende entwicklungsumgebung, die es mir erlaubt, so schnell und
einfach als möglich ans ziel zu kommen. und ob der weg "c" oder
"assembler" heißt, ist mir eigentlich egal. und kleinkram ist dies
für micht nicht, ich programmiere "offline", also unterwegs, da kann
ich nicht immer das kompilierte programm einspielen und schauen, ob's
funktioniert. so, das habe ich jetzt anbringen müssen :-)

2.) außerdem funktioniert es bereits :-)

@mthomas:

ganz vielen dank für deinen tip - die optimierungs war's. die
optimierung auf "0" - und es läuft super !!!
danke nochmals!!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.