mikrocontroller.net

Forum: Compiler & IDEs Studio 6.0 einzelschritt debuger


Autor: Huber M. (michael_h784)
Datum:

Bewertung
0 lesenswert
nicht 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

/*
 * debuggen.c
 *
 * Created: 12.09.2016 19:15:35
 *  Author: Daniela Weinhart
 */ 


#include <avr/io.h>

int main(void)
{  int a = 42;
  int b = 5 + a;
  
    while(1)
    {
        //TODO:: Please write your application code 
    }
}

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
-1 lesenswert
nicht 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?

Autor: Huber M. (michael_h784)
Datum:

Bewertung
1 lesenswert
nicht 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.

Autor: BlaBla (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: BlaBla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinte Variable ;-)

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Huber M. (michael_h784)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Huber M. (michael_h784)
Datum:

Bewertung
0 lesenswert
nicht 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?

/*
 * GccApplication21.c
 *
 * Created: 15.09.2016 11:32:56
 *  Author: Huber
 */ 


#include <avr/io.h>

int main(void)
{
  
     int a = 42;
       int b = 3*a +7;
       int d = a + b;
   
    while(1)
    {
       
        //TODO:: Please write your application code 
    }
}

Autor: Huber M. (michael_h784)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

: Bearbeitet durch User
Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter F. (jim_quakenbush)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

: Bearbeitet durch User
Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.