Discussion:
Unerklärlicher FP Fehler
(zu alt für eine Antwort)
Hans-Peter Diettrich
2014-05-02 13:27:56 UTC
Permalink
In einem Programm [D5] erhalte ich (halbwegs reproduzierbar) eine
"Illegal Floating Point Operation" Exception, bei einem FILD einer
Integer-Zahl aus einer Tabelle. Wenn ich den betroffenen Ausdruck
aufspalte, bis herunter zum Laden des Werts in eine Integer-Variable,
tritt dieser Fehler nicht mehr auf, womit die üblichen Fehlerursachen
(illegaler Speicherzugriff) eigentlich ausscheiden.

Wie kann ich so einem Fehler auf die Schliche kommen?
Könnte er von einer vorherigen FPU Operation stammen, der erst beim
nächsten Zugriff auf die FPU zur Exception führt?
Könnte eine Änderung des CW die Exception beseitigen?

Ziemlich ratlos
DoDi
Matthias Frey
2014-05-02 15:48:12 UTC
Permalink
Post by Hans-Peter Diettrich
Wie kann ich so einem Fehler auf die Schliche kommen?
Könnte er von einer vorherigen FPU Operation stammen, der erst beim
nächsten Zugriff auf die FPU zur Exception führt?
Könnte eine Änderung des CW die Exception beseitigen?
Ziemlich ratlos
google nach "delphi 8087cw"
Post by Hans-Peter Diettrich
DoDi
Hans-Peter Diettrich
2014-05-05 14:06:26 UTC
Permalink
Post by Matthias Frey
Post by Hans-Peter Diettrich
Wie kann ich so einem Fehler auf die Schliche kommen?
Könnte er von einer vorherigen FPU Operation stammen, der erst beim
nächsten Zugriff auf die FPU zur Exception führt?
Könnte eine Änderung des CW die Exception beseitigen?
Ziemlich ratlos
google nach "delphi 8087cw"
Danke aber das hat nicht viel geholfen :-(

Doch zum Glück bin ich der Ursache auf die Schliche gekommen: eine
uninitialisierte lokale Variable hat den Fehler provoziert! Nur ist mir
immer noch ziemlich schleierhaft, wieso der erst so viel später zu Tage
tritt, nach vielen anderen FP-Operationen.

DoDi
Matthias Frey
2014-05-06 06:37:37 UTC
Permalink
...
Post by Hans-Peter Diettrich
Doch zum Glück bin ich der Ursache auf die Schliche gekommen: eine
uninitialisierte lokale Variable hat den Fehler provoziert!
Gabs keine Compiler-Warnung?
Post by Hans-Peter Diettrich
DoDi
Matthias
Hans-Peter Diettrich
2014-05-06 06:56:46 UTC
Permalink
Post by Matthias Frey
....
Post by Hans-Peter Diettrich
Doch zum Glück bin ich der Ursache auf die Schliche gekommen: eine
uninitialisierte lokale Variable hat den Fehler provoziert!
Gabs keine Compiler-Warnung?
Schon, aber da ich die vielen Hundert Warnungen nicht selbst korrigieren
kann, hatte ich die abgeschaltet. Ich wundre mich immer noch, wie ein so
fehlerträchtiges Programm trotzdem klaglos läuft, und mit angeblich
sogar korrekten Resultaten - wenn man nur die Optimierung einschaltet.
Und das bestärkt die Verantwortlichen, daß man die Warnings getrost
ignorieren darf.

Als mir diese altbekannte Fehlerquelle einfiel, habe ich die Warnings
eingeschaltet und nochmal kompiliert, und dann ging es ganz schnell.

DoDi

Lesen Sie weiter auf narkive:
Loading...