ATtiny84A- JTAGICE MKII zeigt auto-Variablenwert nicht an

OP #7373209
Lesenswert?
• ▲
▼

Hallo, ich debugge gerade ein C-Prog. mit o.g. ICE. Wenn ich den ICE anhalte, werde alle globalen Var. im Watchfenster mit ihrem Wert angezeigt, aber bei den lokalen Var. wird nur die Speicherklasse "automatic" als Wert angezeigt. Natürlic habe ich den ICE dort angehalten, wo die lokale Var. existiert.

Gruß WoW

OP #7373238
Lesenswert?
• ▲
▼

Ich habe jetzt das Disassembly angeschaut. Die Var. wird in einem Prozessorregister gehalten. Scheinbar ist das der Debugging-SW zu kompliziert, den Ort herauszufinden. Beim Compilieren entscheidet ja der Compiler, wo er die Variable hält (Stack/Register) An die Info wird der Debugger nicht (einfach?) rankommen. Für globale Variablen wird es da Adresslisten geben.

Gruß WoW

#7373253
Lesenswert?
• ▲
▼

Grundsätzlich kann sein, daß Compiler bestimmte Variable wegoptimiert und Berechnung anders macht. Compiler soll Ergebnis wie erwartet geben. Wie er das macht bleibt aber seine private Sache.

Wenn es wichtig ist, alle Variablen wie geschrieben zu sehen, kann man sie als volatile angeben. Dann wird natürlich alles langsam, aber Variable wird immer aus SRAM gelesen und in SRAM gespeichert.

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.