Forum: Compiler & IDEs Debuginformationen korrupt bei avr-gcc 3.4.1 und 3.4.3


von Udo Senf (Gast)


Angehängte Dateien:

Lesenswert?

Ich arbeite an einem größerem Mega128 Projekt (siehe makefile) und kann
unter den Compilerversionen 3.4.1 und 3.4.2 kompilieren. Ausserdem habe
ich 2 AvrStudio4 Debugsysteme. Eins arbeitet mit cof, das andere mir
-gdwarf-2.

Daraus ergeben sich 4 Kombainationsmöglichkeiten der dateiherstellung:

V 3.4.1 und elf->cof: einwandfreie lss-Datei und Debuginformation
V 3.4.1 und -dwarf-2: korrupte lss-Datei und Debuginformation
V 3.4.3 und elf->cof: korrupte lss-Datei und Debuginformation
V 3.4.3 und -dwarf-2: korrupte lss-Datei und Debuginformation

Im lss file kann man erkennen das c-source-code und assembler-code
nicht synchron sind.

Weis jemand etwas über das Phänomen?

von Udo Senf (Gast)


Angehängte Dateien:

Lesenswert?

hier noch die koruppte lss-datei. ab zeile 793 geht das chaos los.
(hab nur den anfang mitgeschickt - die ganze datei hätte 2,5Mb gehabt)

von Jörg Wunsch (Gast)


Lesenswert?

Die bekannten DWARF-2 Bugs für den AVR-GCC kennst du aber
schon, ja?  Insbesondere ist es ein bekanntes Problem, dass
die DWARF-Information für alles jenseits von 64 KB inkorrekt
ist.

von Udo Senf (Gast)


Lesenswert?

Danke Jörg, kannte ich leider noch nicht, ist aber sicherlich die
Ursache für Fall 2 und Fall 4.
Nun sieht es warscheinlich auch noch aus, dass sich dieser 64k Fehler
bei der Version 3.4.3 auch auf den elf/coff ausgeweitet hat, denn das
Listing sieht im Fall 3 genauso verwirrt aus....

Muss ich halt noch ne verion warten mit meinem Riesenprojekt.

Trotzdem supervielen Dank.

Udo Senf

von Jörg Wunsch (Gast)


Lesenswert?

COFF sollte davon nicht betroffen sein.  Das benutzt dein
Disassembler-Listing ja auch nicht direkt, sondern der benutzt
eigentlich stabs.  Bist du dir sicher, dass der Compiler auch mit
-gstabs aufgerufen worden ist?

von Udo Senf (Gast)


Lesenswert?

Danke, mit -gstabs korregiert sich auch das Listing wieder (?) in der
Version 3.4.3  kann ich nun zumindest die neusete Compilerversion
nutzen. Auf eine Lösung zur Nutzung von -dwarf-2 werd ich dann wohl
noch warten müssen.

Hauptgrund für meine Umstellung war:

1. Ich kann immer nocht nicht mit extcoff debuggen
2. Ich habe eine AVR JTag ICE MKII - der dwarf-2 bevorzugt
3. Ich wollte mit C++ in meinem Projekt anfangen, da es immer komplexer
wird.

Trotz allem vielen Dank - ich werden wohl noch warten müssen....

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.