Problem mit mega32 und dwarf-2

OP #449833
Lesenswert?
• ▲
▼
Compiling: main.c
avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=14745600UL  -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=main.lst  -std=gnu99 -MD -MP -MF 
.dep/main.o.d main.c -o main.o
main.c:1: error: target system does not support the "dwarf-2" debug 
format

Ich hab die Vorlage des Makefile von MFILE benutzt und nur den 
Controllertyp und die Frequenz geaendert, und bekomme diese 
Fehlermeldung. Kann aber nicht wirklich etwas damit anfangen, und 
dwarf-2 benötige ich ja zum debuggen.
Worann kann das liegen?

besten Dank

SiO2
Moderator Persönliche Seite #449839
Lesenswert?
• ▲
▼
> Worann kann das liegen?

Daran, dass dein Compiler nicht für DWARF-2-Debuginformationen
konfiguriert worden ist.

> und dwarf-2 benötige ich ja zum debuggen.

Nur für AVR Studio.  Offenbar hast du ja keinen AVR-GCC aus
dem WinAVR-Paket, dann lass uns vielleicht ja mal ein wenig
mehr über deine Umgebung wissen.  Meine Kristallkugel ist leider
gerade in der Reparatur.
OP #449906
Lesenswert?
• ▲
▼
# Debugging format.

#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.

Deswegen. Ich fange grad mit C aufm AVR an, und bin ausgegangen, das das 
"Standard" ist zum debuggen.
Also brauch ich nur
DEBUG = ELF ?

@Jörg. Ich bin davon Ausgegangen, das es , egal ob win oder GNU/Linux, 
gleich ist auf den Systemen.
avr-libc 1.4.4
avr-binutils 2.16
avr-gcc 3.4.4
Moderator Persönliche Seite #449920
Lesenswert?
• ▲
▼
Jens B. wrote:

> #     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.

> Deswegen. Ich fange grad mit C aufm AVR an, und bin ausgegangen, das das
> "Standard" ist zum debuggen.
> Also brauch ich nur
> DEBUG = ELF ?

Nein.  Steht ja auch nicht da, dass es das gäbe.  ELF-Files sind das
alles, egal ob mit stabs oder DWARF-2 als Debuginformation.

> Ich bin davon Ausgegangen, das es , egal ob win oder GNU/Linux,
> gleich ist auf den Systemen.

Nein, leider nicht.  Erstens kommen die Tools leider nicht ohne
Patches aus, und das Einschalten der Möglichkeit,
DWARF-2-Debuginformation zu generieren, braucht zumindest einen
nicht-default-Option zu ./configure.  Du musst also schon mal wissen,
wie derjenige, der deinen Compiler gebaut hat, sein configure gemacht
hat.

Zweitens ist das DWARF-2 bislang für den AVR-GCC eher halbherzig
implementiert, oder genauer gesagt ist es nur ein Abfallprodukt
dessen, dass GCC's wesentliche Zielplattformen (i386 und amd64 alias
x86_64) DWARF-2 unterstützen und mittlerweile wohl zum default gemacht
haben.  Das führt aber dazu, dass DWARF-2 innerhalb der gesamten Kette
für den AVR nicht sehr ordentlich funktioniert.  Der Assembler
schafft's gleich gar nicht, saubere DWARF-Debuginfo zu liefern wenn
man ihn mit -gdwarf2 aufruft, obwohl er das für einen i386-Prozessor
z. B. kann.  (Darunter leiden derzeit auch die AVR-Studio-Nutzer.)
Der GDB versteht das DWARF-2 für den AVR eher schlecht als recht, da
ihm das einfach noch nie jemand beigebracht hat.  Im Gegensatz dazu
ist stabs ein wohlverstandenes und -implementiertes Debugformat -- nur
dass AVR Studio es eben nicht versteht, und daher DWARF-2 nehmen muss
(oder das altertümliche AVR-COFF).

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