www.mikrocontroller.net

Forum: GCC Lokale Variable nicht watchbar im AVRStudio mit Dragon

Autor: John Go (johngo)
Datum: 03.07.2008 22:49

Hallo,
beim Debuggen eines C-Programm auf einem Atmega168 im AVRStudio mit dem
AVR-Dragon wird der Inhalt von lokalen Variablen im Watchfenster
meistens nicht angezeigt. Bei globalen oder statischen Variablen
funktionierts. Bei irgendeiner lokalen hat es, soweit ich mich erinnern
kann, jedoch auch schon mal funktioniert.

Bei der Suche nach dem Inhalt der nicht watchbaren Variablen sah ich,
dass sie in Registern abgelegt waren, welche ich schon anschaun und auch
ändern kann.

Wie kann ich lokale Variable im Debugger sehen? Hat jemand eine Idee?

Danke,

Johngo
Autor: Simon K. (simon) Benutzerseite
Datum: 03.07.2008 22:57

Optimierungen ausschalten eventuell.
Autor: fabs (Gast)
Datum: 04.07.2008 11:52

Lokale Variablen kannste nur dann "watchen" wenn du dich gerade im Scope
der Variable befindest. Will heissen, wenn du grad in der dazu gehörigen
Funktion bist.
Sonst existiert die Variable ja logischerweise auch nicht ;-)

Aber grundsätzlich gibts da bei C und AVR-Studio öfters
Probleme...manchmal findet er die lokalen Vars auch nicht obwohl sie im
Scope sind.
Ist aber in der letzten Studio Version besser geworden hatte ich den
Eindruck.

Gruß
Fabian
Autor: Klaus (Gast)
Datum: 04.07.2008 12:14

was häufig hilft, wenn im Watchfenster "invalid location" steht, ist die
Variable als volatile zu deklarieren.
Autor: John Go (johngo)
Datum: 04.07.2008 21:50

Ich hab jetzt mal ohne Optimierung compiliert, mit -O0, und tatsächlich,
jetzt kann ich die lokalen Variablen auch sehen!

Vielen Dank,

Johngo
Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum: 04.07.2008 23:11

John Go wrote:
> Ich hab jetzt mal ohne Optimierung compiliert, mit -O0, und tatsächlich,
> jetzt kann ich die lokalen Variablen auch sehen!

Nicht alles, was du als lokale Variable benötigst, benötigt der
Compiler ebenso als eine solche.  Sehr oft ist die Lebenszeit einer
lokalen Variablen nur einige Zeilen im generierten Assemblercode,
und derartige Konstellationen werden in herkömmlichen Debuginfor-
mationen nur schlecht abgebildet.

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net