Forum: Compiler & IDEs Studio 6.0 einzelschritt debuger


von Huber M. (michael_h784)


Lesenswert?

Hallo,

Ich hätte mal ne Frage. Trotz Hilfe Menü blicke ich nicht durch bzw. 
kann ich es mir nicht einstellen. Und zwar möchte ich mir gerne in einem 
Fenster Ergebnisse im Einzelschritt meiner variablen anzeigen lassen.

int a = 42;         jetzt  soll es mir 42 anzeigen. dann einen schritt 
weiter
int b = 5 + a;      und hier das ergebnis

geht das überhaupt bei Atmel Studio 6.0 . Wenn ja könnte mir das bitte 
jemand zeigen ?

grüsse huber

1
/*
2
 * debuggen.c
3
 *
4
 * Created: 12.09.2016 19:15:35
5
 *  Author: Daniela Weinhart
6
 */ 
7
8
9
#include <avr/io.h>
10
11
int main(void)
12
{  int a = 42;
13
  int b = 5 + a;
14
  
15
    while(1)
16
    {
17
        //TODO:: Please write your application code 
18
    }
19
}

von Dieter F. (Gast)


Lesenswert?

Huber M. schrieb:
> geht das überhaupt bei Atmel Studio 6.0 . Wenn ja könnte mir das bitte
> jemand zeigen ?

Warum probierst Du es nicht aus?

von Huber M. (michael_h784)


Lesenswert?

wenn ich das nicht schon seit 1,5 Stunden probieren würde hätte ich 
nicht gefragt. Ich hab schon jeden Button durch, ich bekomme einen 
gelben pfeil an die zeile hin, und dann egal was ich mache komme ich 
nicht weiter.

von BlaBla (Gast)


Lesenswert?

Das ist doch kein Programm: Es besteht doch nur aus einer Konstante und 
einer Endlosschleife. Wahrscheinlich wird die Konstante auch noch weg 
optimiert.
Schreibe mal was sinnvolles.
Gruß B.

von BlaBla (Gast)


Lesenswert?

Meinte Variable ;-)

von Stefan F. (Gast)


Lesenswert?

Deaktiviere Optimierungen mit -O0, damit der compiliert Code möglichst 
dem Quelltext entspricht. Variablen und Berechnungen, die nicht 
verwendet werden schmeißt der Compiler allerdings trotzdem noch raus. 
Das kannst du umgehen, indem du den Wert der Variable in ein i/o 
Register (z.b. porta) schreibst.

von Huber M. (michael_h784)


Lesenswert?

Stefan U. schrieb:
> Deaktiviere Optimierungen mit -O0

Ok, aber unter debug--Options und settings kann ich es nicht finden.
wo ist denn das dann drinnen

von Dieter F. (Gast)


Lesenswert?

Bist Du der englischen Sprache einigermaßen mächtig?

Dann schau mal nach AVR Studio Simulator ...

Falls nicht, wird es schwierig :-)

BlaBla schrieb:
> Das ist doch kein Programm:

Das ist Wurscht - auch die Zuweisungen kann man simulieren und 
überprüfen.

von Huber M. (michael_h784)


Lesenswert?

Mahlzeit,

also da ich nur einen ISP mk2 Programmer habe kann ich nur Simulieren.

- kann ich überhaupt Zuweisungen im Simulationsmodus simulieren?

so wie ich das jetzt verstanden habe gehe ich wie folgt vor.:

1. bei dem no tool Button, entweder den Programmer oder Simulator 
auswählen, ich wähle Simulator.

2.  danach drücke ich Debugg and break (alt+F5) Button

3. nun ist der gelbe Pfeil nach der main bei dieser { klammer aber nicht 
bei meinen Zuweisungen.

4. dann könnte man jetzt einen Breakpoint setzen zb. bei int a = 42; und 
den grünen Play (F5) button drücken.

und jetzt würde ich gerne im fenster links unten unter locals  Name  a 
Wert 42 sehen

jetzt den step into (F11) Button drücken dann sol er mir den nächsten 
namen und wert in zeile 2 anzeigen usw...

wie oben schon gsagt wurde. Wird das an der Optimierungs Einstellung 
liegen die sollte ich auf low setzen. Aber ich habe immer noch nicht 
raus gefunden wie ich dort hin komme. könnte mir bitte jemand weiter 
helfen?

1
/*
2
 * GccApplication21.c
3
 *
4
 * Created: 15.09.2016 11:32:56
5
 *  Author: Huber
6
 */ 
7
8
9
#include <avr/io.h>
10
11
int main(void)
12
{
13
  
14
     int a = 42;
15
       int b = 3*a +7;
16
       int d = a + b;
17
   
18
    while(1)
19
    {
20
       
21
        //TODO:: Please write your application code 
22
    }
23
}

von Huber M. (michael_h784)


Lesenswert?

Stefan U. schrieb:
> Deaktiviere Optimierungen mit -O0, damit der compiliert Code möglichst
> dem Quelltext entspricht.

also das habe ich jetzt endlich gefunden und -o0 gestellt.

kann mir nicht doch jemand sagen wie es geht mit den variablen anzeigen, 
ohne etwas in porta oder ähnliches zu schreiben.

denn z.b Ti MSP430 Workbench geht es zb. auch so wie ich das geschrieben 
habe. Wenn der Optimierer ausgeschaltet ist. Dann kann ich einzelschritt 
machen und im local Ansichtsfenster zeigt es mir Name Wert und Typ an.

von Dieter F. (Gast)


Lesenswert?

Huber M. schrieb:
> - kann ich überhaupt Zuweisungen im Simulationsmodus simulieren?

Ja, ja, ja, ja, ja ... ja.

Huber M. schrieb:
> 2.  danach drücke ich Debugg and break (alt+F5) Button

Nein, danach setzt Du einen Break-Point auf die erste Initialisierung 
(Zuweisung) - erst danach startest Du den Debugger

Huber M. schrieb:
> 3. nun ist der gelbe Pfeil nach der main bei dieser { klammer aber nicht
> bei meinen Zuweisungen.

Wenn Du den Break-Point richtig setzt bist Du dann bei der ersten 
Initialisierung (Zuweisung)

Mit Einzelschritt geht's weiter ...

Dieter F. schrieb:
> Bist Du der englischen Sprache einigermaßen mächtig?
>
> Dann schau mal nach AVR Studio Simulator ...

von Stefan F. (Gast)


Lesenswert?

Ich habe schon ewig nicht mehr mit dem Debugger/Simulator gearbeitet. 
Allerdings hatte ich das damals in meinem Buch Band 1 detailliert mit 
Screenshots erklärt. Schau mal dort rein: 
http://stefanfrings.de/mikrocontroller_buch/index.html

von Dieter F. (Gast)


Lesenswert?

Habe es jetzt mal ausprobiert.

"Debug + break" geht auch - mache ich halt nie, weil ich immer einen 
definierten Einsprung haben will ...

Dann erstmal alle zu untersuchenden Variablen (sofern nicht schon 
geschehen) mit der rechten Maustaste anklicken und per "add watch" der 
Beobachtungsliste zufügen.

Dort kannst Du per rechtem Mausklick auf die "Value"-Spalte Hexadezimale 
oder Dezimale Anzeige der Variableninhalte auswählen.

Dann mit F11 (Step into / Einzelschritt) weiter ... und die Veränderung 
der Werte beobachten ...

von Stefan F. (Gast)


Lesenswert?

Ach sorry, ich habe ganz verpennt, dass sich die Frage auf Studio 6 
bezieht, meine Anleitung aber für 4.19 ist. Mein Buch wird Dir wohl kaum 
eine Hilfe sein. Tut mir Leid.

Ich würde mir jetzt gerne selbst ein -1 vergeben. Geht leider nicht.

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.