Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ort eines Fehlers in Gleitkommaberechnung finden (https://www.delphipraxis.net/53646-ort-eines-fehlers-gleitkommaberechnung-finden.html)

messie 20. Sep 2005 16:35


Ort eines Fehlers in Gleitkommaberechnung finden
 
Hallo,

ich habe gelegentlich einen Gleitkommafehler in meinem Programm, bekomme aber nicht angezeigt, wo. Scheint mir in einer aufgerufenen dcu-Routine zu sein.
Kann man das irgendwo einstellen, daß ich das angezeigt bekomme? Nochmal, es tritt sporadisch auf.

Grüße, Messie

tigerman33 20. Sep 2005 18:43

Re: Ort eines Fehlers in Gleitkommaberechnung finden
 
Du musst schon ein bisschen mehr Informationen rausrücken. :wink: Welche "dcu-Routine" ist das denn, und was für Parameter übergibst du da? Wenn's eine RTL-Routine ist: Du hast ja D6Prof, schau dir halt mal die Sourcen an.

messie 21. Sep 2005 10:54

Re: Ort eines Fehlers in Gleitkommaberechnung finden
 
Zitat:

Zitat von tigerman33
Du musst schon ein bisschen mehr Informationen rausrücken. :wink: Welche "dcu-Routine" ist das denn, und was für Parameter übergibst du da? Wenn's eine RTL-Routine ist: Du hast ja D6Prof, schau dir halt mal die Sourcen an.

Wenn ich wüßte, welche Routine es ist, hätte ich die Frage nicht gestellt. Der online-Debugger springt nach dem Fehler auch immer auf "Application.Run". Muß demnach wohl etwas sein, wofür ich keine Quellen habe. TeeChart könnte das beispielsweise sein. Ich bekomme aber keine detaillierte Fehlermeldung, und - wie gesagt - das Problem tritt sporadisch auf. Kann man solche Informationen dem Prozessorfenster entnehmen?

Grüße, Messie

jim_raynor 21. Sep 2005 11:23

Re: Ort eines Fehlers in Gleitkommaberechnung finden
 
Gleitkommafehler sind ganz übel. Wenn du zum Beispiel irgendwo 1/0 in eine Variable speicherst, bekommst du erst einen Fehler, wenn du Funktionen wie trunc, round, floor etc. aufrufst. Da die eigentliche Fehlerursache zu finden ist wie die Suche nach der Nadel im Heuhaufen. Falls da jemand eine Idee hat, würde es gut hier passen ...

Das Problem ist, dass Delphi bei einer normalen Division scheinbar nicht die Flags in der FPU korrekt auswertet und gleich eine Exception erzeugt.

tigerman33 21. Sep 2005 11:25

Re: Ort eines Fehlers in Gleitkommaberechnung finden
 
Da müsste ja zumindest die Aufruf-Reihenfolge des Stacks noch aufgeschlüsselt sein.

So wie es jetzt ist, wirst du den Fehler denke ich aber nicht finden können. "Sporadische" Fehler sind die schlimmsten. Du musst zuerst mal rausfinden, wie du den Fehler reproduzieren kannst. Vorher wirst du allenfalls einen Glückstreffer landen können, an vernünftiges Debugging ist ohne diese Information aber nicht zu denken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz