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?
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.
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.
Gibt es einen Disassembler-Mode? Da sieht man doch eher, was der Prozessor macht...
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.