Debugger und Otimierung

Gast #1535839
Lesenswert?

hallo liebe Programmierer,
ich versuche mich gerade das erste mal mit dem Debugger im AVR-Studio.
ich habe ein Projekt, das ohne Optimierung nicht mehr in meinen 
Controller passt. Ist es wirklich richtig, dass bei eingeschalteter 
Optimierung der Instruktion Pointer im c File nicht mehr zu sehen ist, 
wenn man zB. step into aufruft ?
Wenn ja, wie kann man denn dann das Projekt debuggen ???
Danke schon im voraus
Gruß Mattias
Gast #1535868
Lesenswert?

In den höheren Optimierungsstufen gibt es keine 1:1 -Zuordnung von 
C-Quellcode und Assemblertext, und gerade beim WinAVR führt das dann 
dazu, daß der Debugger macnhmal ziemlich sinnlos in der Gegend rumsteht.

Versuch es mal mit -O1. Das sollte auch schon kleineren Code erzeugen, 
ist aber etwas debugger-freundlicher.

Ansonsten bleibt nur noch, das Programm in Module zu zerlegen, und diese 
einzeln zu debuggen, oder auf einen größeren Controller auszuweichen.

Oliver
#1535879
Lesenswert?

1. Im Debugger läßt sich auch auf Assembler-Darstellung umschalten. Dann 
funktioniert die gesamte Anzeigerei.

2. Wähle einen "größeren" Processor aus, der die benötigten 
Spezialregister mit gleichem Namen besitzt wie der von Dir eigentlich 
eingesetzte. Den Debugger im AVR-Studio läßt Du gegen den größeren 
Processor arbeiten - mit -O0. Wenn Du Das Programm dann für die reale 
Hardware compilierst, dann setzt Du die Compile-Optionen auf den echten 
Zielprocessor.

Beispiele für 2:
- ATMEGA 48 - 88 - 168
- ATMEGA 164 - 324 -644

Viel Erfolg!

Bernhard
Gast #1535891
Lesenswert?

Debuggen von Code, der mit anderen als den später tatsächlich auf dem 
Controller eingesetzten Optionen compiliert wurde, ist für'n A***.
Gerade die Optimierungen fördern so einige Fehler im Code zutage, die 
man ohne gar nicht bemerkt.

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