Forum: Mikrocontroller und Digitale Elektronik lokale Variable nicht im Debugger


von Peter P. (hackrid)


Angehängte Dateien:

Lesenswert?

Hallo,

warum wird "raw" als unavailable angezeigt?

ich habe es doch gleich zu beginn der Funktion mit 0 inizialisiert?

Vielen Dank

edit:
wenn ich an der gezeigten Breakpointposition auf "next statement" 
klicke, lande ich nach kurzer wartezeit wieder bei dem breakpoint?! was 
ist da los?

von Ralf G. (ralg)


Lesenswert?

Weil die Variable in einem Register steht (hat der Compiler so für sich 
entschieden), das Register aber später - wenn die Variable in der 
Funktion nicht mehr benötigt wird - für etwas anderes verwendet wird.

von Andreas B. (andreas_b77)


Lesenswert?

Wenn man das Programm so debuggen will, wie es dasteht, muss man die 
Optimierung abschalten. Sonst muss man eben damit leben, dass Variablen 
und Code-Abschnitte wegoptimiert sind und die Einzelschrittausführung 
vor und zurück springt.

von Daniel V. (danvet)


Lesenswert?

Gibt es einen Disassembler-Mode? Da sieht man doch eher, was der 
Prozessor macht...

von (prx) A. K. (prx)


Lesenswert?

Daniel V. schrieb:

> Gibt es einen Disassembler-Mode? Da sieht man doch eher, was der
> Prozessor macht...

Im Bild am rechten Rand. Fehlen nur noch die Register. Und man muss ihn 
lesen können.

von (prx) A. K. (prx)


Lesenswert?

Wenn man die Optimierung nicht abschalten will oder kann, dann kann man 
für Testzwecke lokale Variablen als "volatile" deklarieren. Solche 
sollte man im Debugger eigentlich immer sehen können, trotz voller 
Optimierung.

von Dosmo (Gast)


Lesenswert?

Ich kenn diesen Debugger nicht, aber einige machen einen Unterschied 
zwischen dem "Watch"- und dem "Locals"-Fenster. D.h. zum Ansehen lokaler 
Variablen gibt es ein eigenes Fenster.
Der Microchip MPLAB hat darüber hinaus noch die Eigenartig, daß 
"static"-Variablen "unavailable" sind. Warum auch immer...

Beitrag #6574197 wurde von einem Moderator gelöscht.
Beitrag #6574268 wurde von einem Moderator gelöscht.
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.