BFD DWARF Error - avr-gcc 13.2 & binutils 2.41

OP #7548680
Lesenswert?
• ▲
▼

Hallo,

in die Runde gefragt. Muss ich mir irgendwelche Sorgen machen bei den DWARF Fehlern? Beim eigentlichen kompilieren ist ja alles ok. Die Fehler kommen doch nur vom Debugger? Kann ich die ignorieren? Oder wird das irgendwie kritisch? Es begann ab einer bestimmten Codegröße.

Angehängte Dateien:
Moderator Persönliche Seite #7548687
Lesenswert?
• ▲
▼

Veit D. schrieb:

Die Fehler kommen doch nur vom Debugger?

Sie kommen vom Disassembler.

Ich würde aus dem Gewusel vieles, sehr vieles einfach rauswerfen – weil es Quatsch ist, das jedesmal alles überhaupt anzuwerfen. Diese Disassembler-Listings werden eh total überbewertet. Die Optimierungen des Compilers verwürfeln den Code hinreichend gut, als dass der Versuch, da noch zeilenweise den Sourcecode zuzuordnen, eher schlecht als recht funktioniert. Wenn du wirklich wissen willst, was passiert, geht um das Verständnis des tatsächlich erzeugten Maschinencodes nichts herum, und den Sourcecode dazu schaust du dir besser in einem zweiten Fenster parallel an.

Nichtsdestotrotz hat entweder der Compiler oder das objdump hier ein Problem. Offsets, die ins Nirvana zeigen, sollte es natürlich nicht geben.

OP #7548961
Lesenswert?
• ▲
▼

Hallo,

wenn ich dich richtig verstehe ist das nur ein Disassemblierungsproblem. Der übersetzte Code ist ok. Denn hierbei hatte ich dann langsam Bedenken. objdump habe ich schon "ausgeschalten". Sonst hätte ich die 2 Zeilen ein Drittesmal. Was meinst du mit "im Gewusel" ausschalten?

Moderator Persönliche Seite #7549045
Lesenswert?
• ▲
▼

Veit D. schrieb:

objdump habe ich schon "ausgeschalten"

In deinem Log ist es noch einmal drin, als avr-objdump -d -S (ok, mit den Langformen der Optionen). Das disassembliert den Code (-d) und versucht, anhand der Debuginformationen den Sourcecode aus den Quelldateien zu den einzelnen Bereichen zuzuordnen (-S).

Beim avr-nm tritt der gleiche Fehler nochmal auf, weil auch da Zeilennummerninformationen erfragt werden und daher die Debug-Infos gelesen werden müssen. Da sowohl objdump als auch nm auf das gleiche Backend (libbfd) zurückgreifen, ist es natürlich wenig verwunderlich, dass sie über die ihrer Meinung nach gleiche Inkonsistenz in den Debug-Informationen klagen.

Ob nun tatsächlich der Compiler Fehler in den Debug-Infos generiert hat oder libbfd bloß irgendwas falsch interpretiert, kann man natürlich ohne tiefe Analyse nicht feststellen. Aber sicher ist, dass es nichts mit dem Code selbst sondern nur mit der Debug-Info ist.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.