![]() |
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 |
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.
|
Re: Ort eines Fehlers in Gleitkommaberechnung finden
Zitat:
Grüße, Messie |
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. |
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 12:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz