Forum: Mikrocontroller und Digitale Elektronik ATtiny84A- JTAGICE MKII zeigt auto-Variablenwert nicht an


von Wolfgang W. (wolfgang_w563)


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

von Maxim B. (max182)


Lesenswert?

Du kannst das nochmal probieren mit ausgeschalteter Optimierung.

von Wolfgang W. (wolfgang_w563)


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

von Maxim B. (max182)


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.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.