hallo, ich versuche mich gerade an dem simulationstool von avr studio, neueste version und kann leider nur variablen im watch-window sehen die als volatile deklariert sind, die anderen nicht... wisst ihr woran das liegt? gruß ein fragender
holger wrote:
> Optimierung des Compilers abschalten könnte helfen.
...außer dass man dann etwas komplett anderes debuggt. Da hat man gute
Chancen, die Chose später mit Optimierung nochmal zu debuggen.
Jörg Wunsch wrote: > > ...außer dass man dann etwas komplett anderes debuggt. Da hat man gute > Chancen, die Chose später mit Optimierung nochmal zu debuggen. Das habe ich auch schon erlebt. Aber warum eigentlich? Die Optimierung darf doch die Funktionalität nicht verändern, oder doch??
Die Optimierung verändert nicht die Funktionalität, aber das Verhalten bei nicht-korrektem Quellcode kann unterschiedlich ausfallen bzw. sich Fehler garnicht äussern (zB fehlendes volatile). Entsprechend sieht es dann so aus, als wäre der Compiler der Bösewicht, wenn nach eingeschalteter Optimierung nix mehr geht. Beitrag "Re: _delay_ms() falsches timing"
D.h. es gibt nur den WEg über das Abschalten der Optimierung? War das frühe rnicht anders bzw. ging auch so?
fragender wrote: > D.h. es gibt nur den WEg über das Abschalten der Optimierung? War das > frühe rnicht anders bzw. ging auch so? Wenn der Compiler eine Variable wegoptimiert, ist sie nun mal weg... Wenn es früher anders war, hast du eine andere GCC-Version ausgespielt. Versuch's mal mit -O1, was war mal komzipiert um bei Optimierung einigermassen debuggen zu können. Übrigens schliessen sich bei manch anderen Compilern Optimierung und Debugging komplett aus, also muss man froh sein, daß das bei GCC überhaupt vereinbar ist. Wenn die Quelle nicht zu krass ist, geht auch ein Debuggen im mixed mode C+asm. Man sieht ja, ob der asm das macht, das man haben will.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.