gcc 3.4.2 zum gcc 4.2.0 problem

Gast #738971
Lesenswert?

Hallo

Bin nach langer zeit auf den neuen gcc 4.2.0 umgestigen.
Habe vorher 3.4.2 benutzt. (Von WinAVR20060421 aud WinAVR20071221)

Habe Problem mit lokalen variablen. Mit gcc 3.4.2 ist alles wunderbar.
Wenn ich mir AVRStudio debugge sehen ich die lokalen variablen.

Mit 4.2.0 sagt mir AVRStudio "Location not valid".

Das gleiche Problem habe ich auch mit WinAVR20070521.

Anbei der Code ausschnitt und AVRStudio Screenshot.

Hat jemand von euch eine Idee was daran unterschiedlich ist?

Danke erstmal.

BYE
Angehängte Dateien:
Gast #739166
Lesenswert?

Markus Burrer wrote:
> Also bei mir hat es mit Optimierung noch nie funktioniert. Der Debugger
> läuft zwar, aber irgendwann stimmt die Programmposition nicht mehr mit
> der Position im Sourcecode überein.

Das ist normal bei eingeschalteter Optimierung. Da kannst Compiler 
nehmen wie Du willst. Er sortiert halt so um, dass es nach seinem 
Ermessen OPTIMAL wird.
Deshalb paßt es dann unter Umständen nicht mehr mit dem Sourcecode 
zusammen.
Das er dabei diesen nicht mit umsortiert, ist schade, liegt wohl an der 
Bequemlichkeit des Compilers ;-)

@Tomi
Schalte mal die Optimierung ganz aus.

Hajo
Gast #739565
Lesenswert?

Man sollte nie auf eine neuere WinAVR updaten, wenn es nicht unbedingt 
notwendig ist. Es gab bisher keine einzige Version, bei der man nicht 
Änderungen an seinem Programm vornehmen musste, um es kompilieren zu 
können. Mal ganz abgesehen davon, dass in jeder neuen Version 
zusätzliche Bugs enthalten sind und die alten Bugs einfach nicht behoben 
werden.

Mit vorzüglicher Hchachtung

klogang beendet
Gast #739612
Lesenswert?

@Klogang

Der GCC ist absolut nicht so schlecht, wie er manchmal hier von einigen 
Leuten gemacht wird. Und wenn der Compiler nach einem Versionswechsel 
plötzlich viele Warnungen ausspukt, ist das nicht ein Problem des 
Compilers, sondern dort sitzt dann das Problem vor dem Bildschirm 
zwischen den Kopfhörern.

Das Problem beim Debuggen mit optimiertem Code ist schon gar kein 
Problem des Compilers.

Dieser Compiler wird in unzähligen kommerziellen Projekten verwenden, 
auch in der Raumfahrt. Perfekt ist er damit sicher nicht.

Außerdem kostet er nichts. Und dafür ist seine Leistung mehr als 
großartig. Und wem das trotzdem nicht gefällt, der kann doch auch einen 
anderen Compiler verwenden und nicht ständig darüber jammern.

So, das mußte mal gesagt werden.

Happy New Year an alle.
Hajo
Moderator Persönliche Seite #739717
Lesenswert?

klogang beendet wrote:

> Mal ganz abgesehen davon, dass in jeder neuen Version
> zusätzliche Bugs enthalten sind und die alten Bugs einfach nicht behoben
> werden.

Teil 1 des Satzes ist mehr oder weniger logisch.
Teil 2 des Satzes wirst du uns dann sicher noch beweisen wollen, damit
man dich nicht der üblen Nachrede (amerikanisch FUD: “fear, uncertainty,
disinformation”) bezichtigen kann.
Gast #739973
Lesenswert?

> Es gab bisher keine einzige Version, bei der man nicht Änderungen an
> seinem Programm vornehmen musste, um es kompilieren zu können.

Das passiert vor allem dann, wenn "man" Fehler im Programm hat, die der 
alte noch nicht erkannt hat. Neuere Versionen werden vor allem 
restriktiver, was die Konformität zur C-Norm angeht.

> Mal ganz abgesehen davon, dass in jeder neuen Version zusätzliche Bugs
> enthalten sind und die alten Bugs einfach nicht behoben werden.

Hast du davür konkrete Beispiele? Gibt es dazu Bugreports?
Gast #740182
Lesenswert?

Hallo.

Wollte ungern über die Qualität von gcc diskutieren.

Problem ist nur mit gcc 3.4.2 funktioniert die Funktion auch bei 
Optimierung.
Bei 4.2.0 geht sie nicht.

Man kann ja jetzt schlecht alle funktionen durchgehen wenn man gern 
updaten möchte.

BYE
#740207
Lesenswert?

Tomi wrote:
> Hallo.
>
> Wollte ungern über die Qualität von gcc diskutieren.
>
> Problem ist nur mit gcc 3.4.2 funktioniert die Funktion auch bei
> Optimierung.
> Bei 4.2.0 geht sie nicht.

Dann zeig doch mal die Funktion her.
Und wenn du 'funktioniert nicht' bitte noch etwas
präzisieren könntest.
Was auch gut wäre: Was soll denn die Funktion grundsätzlich
machen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren