Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Compilerfehler? (was: Abnormales Programmende) Kategorie: Programmierung (von André H. - 15.11.2002 12:08)
Als Antwort auf Compilerfehler? (was: Abnormales Programmende) von Joerg Pohl - 10.11.2002 15:16

Hallo Jörg,

> es wird immer verrückter. Kann es sein, dass der Compiler unter bestimmten Umständen fehlerhaften
> Code produziert?
Eindeutig Jein. :-)

> Zur Fehlersuche im weiter oben erwähnten Programm habe ich aus einer Schleife
> do
> { ...
> } while (iReturn > 2);
>
> eine Endlosschleife gemacht:
> do
> { ...
> } while 1;
>
> Das restliche Programm blieb unverändert. Jedoch scheint bei der Abarbeitung der Schleifenteil nicht
> oder nur teilweise ausgeführt zu werden, der Rücksprung (while) erfolgt dann irgendwohin in den vorderen
> Programmteil (durch Ausschriften zu erkennen).
>
> Ã?ndere ich jetzt die Endlosschleife nach
> loop
> { ...
> }
> bei sonst gleichem Programm, funktioniert alles wie es soll.
>
> Ich habe jetzt mal die Grö�en der VMC-Files verglichen (Angaben aus Zeile 3 der VMC-Files):
>
> do { ... } while (iReturn > 2)     :  1184 bytes
> do { ... } while 1                     :  1120 bytes
> loop { ... }                              :  1168 bytes
>
> Was ich nicht verstehe, dass die do {...} while 1 Variante deutlich kürzer ist, als die Endlosschleife mit
> loop  {...} , die ja sicherlich nur aus einem Rücksprung zu einer Adresse besteht.
> Naja, zumindest deckt sich das ganze mit dem Fehlerbild bei der Abarbeitung.
>

while 1 ist kein gültiger Term. Bei while mu� immer eine Variabel
angegeben werden. Da gibt's sonst Fehler und deshalb ist der
VMC-code dann auch kürzer.
Mit while 1==1 sollte es aber funzen.

> Eine mögliche Erklärung wäre, dass der Compiler hier wirklich Mist baut.
> BTW, dll-Version 21.12.2000.
>
> Ich habe mal versucht, die vmc-files zu vergleichen, aber die sind ziemlich unterschiedlich und ohne genauere Kenntnis der VM wahrscheinlich nicht vergleichbar.
>

Mach mal folgendes:
Baue Debugging-Informationen ein, die aufs externe LCD ausgegeben werden,
damit Du genau weiÃ?t, wo im Programm es zu Fehlern kommt.
Anhand der Information mu�t Du erkennen können, welche Anweisung
zuletzt ausgeführt wurde.
Gehe am besten so vor, dmit Du nicht in jeder Zeile eine Zeile für Debugging
einbauen muÃ?t:
Setze erst vereinzelt, an den wichtigsten Stellen, eine Ausgabe der Aktuellen
Programm-Position.
Wenn der Bereich eingegrenzt ist, erstelle in diesem in jeder Zeile eine Ausgabe
der aktuellen Information.

MfG André H.
 


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Compilerfehler? (was: Abnormales Programmende) (von Joerg Pohl - 16.11.2002 10:15)
    Re: Compilerfehler? (was: Abnormales Programmende) (von André H. - 16.11.2002 11:47)