Debugger und Otimierung

Gast #1535839
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.