www.mikrocontroller.net

Forum: PC-Programmierung C Spingt nicht mehr


Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab folgende code:

void Hallo()
{
   //6. ...tue irgendwas...
}

void main()
{
   int i;
   i++; //1.
   i--; //2.
   i++; //3.
   i++; //4.
   Hallo();//5.

   //7. ...tue was anderes
}

Wenn ich nun im Debugger einen Brechpunkt bei 1. setze kann ich schön 
bis nach 5. durchsteppen.
Wenn ich bei 5. jedoch einen weiteren Schritt mache, lande ich nicht bei 
6.
sondern der Prozessor landet bei "CPuSetPowerSavingMod".

Wieso springt er nicht an die gewünschte Stelle?
Hab noch nicht einmal Interrupts aktiviert?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind Debug Symbole vorhanden, wie sieht der ASM Code für die Sequenz 
aus? Wo kommt überhaupt CPuSetPowerSavingMod vor?

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt bei den Debuggern (welchen benutzt Du denn?) die Unterscheidung 
"Step over" und "Step Into".
Bei Step over springt er nicht in Hallo() hinein.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab noch einen Brechpunkt bei 7. gesetzt. Der wird gar nicht 
angesprungen.
Mir kommt es nur Spanisch vor, das er nicht nach 6. springt, sondern ins 
Nirvana. Werde mal schauen ob ich da ein paar DebugSymbole bekomme. Der 
Prozessor is so ein ARM9.

Autor: Rechner (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist doch okay... Dein Prog ist danach fertig!
Hast du ev. die "normale Endlosschleife in main vergessen?

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, nach 5. kommen noch viele andere Programmteile. Erst ganz zum 
schluss kommt die obligatorische while().

Egal welche Funktion ich an position 5. aufrufe, sie wird nicht 
angesprungen!

Autor: Christian S. (manatarms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht das da sowas ähnliches wie ein Wachhund zuschlägt.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

füge mal bei 6 und 7 irgendeinen Befehl ein (dummy = 0 oder sowas)

Gerhard

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.