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

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