![]() |
Laufzeitfehler bei Programmende
Hallo,
bei Programmende wirft meine Anwendung eine Exception der Klasse $C00000005 read of adresse 0x0000000000. Beim Debuggen läuft alles bis ins OnClose des Formulars, das kann ich ohne Fehler durchsteppen und dann knallt es, das OnDestroy des Formulars (weiterer Haltepunkt) wird dann nicht mehr erreicht. Ich habe keine Ahnung wo ich da ansetzen könnte um die Ursache zu finden... Hat jemand einen Tip wie man hier generell vorgehen könnte? Ciao Stefan |
AW: Laufzeitfehler bei Programmende
Es ist so pauschal nicht zu sagen, aber irgendwo wird auf ein NIL-Pointer zugegriffen.
...:cat:... |
AW: Laufzeitfehler bei Programmende
Compiliere mit Debug-DCUs.
Bei mir war es mal das ein DB-Verbindung erst beim Aufräumen der Anwendung beendet wurde. Verlegt ins OnClose hatte geholfen. |
AW: Laufzeitfehler bei Programmende
Hallo,
läuft die Exe auf einem Netzlauwerk oder lokal? |
AW: Laufzeitfehler bei Programmende
Mit Debug DCU's compiliere ich bereits, nur wie sollen die bei der Fehlersuche helfen?
Dass da irgendwo auf etwas Nil zugegriffen wird, ist mir eigentlich klar, nur wie finde ich dieses? Ciao Stefan |
AW: Laufzeitfehler bei Programmende
Ich habe MadExcept eingebaut, welches auch bei einem provozierten Fehler (ButtonClick der Division durch 0 erzeugt) wunderbar anzeigt.
Erst kommt der Division durch 0 Fehler und danach geht das MadExcept-Fenster auf. Nur bei Programmende schlägt MadExcept nicht an, ich bekomme den oben gemeldeten Fehler ohne dass danach MadExcept aufgeht. Und nun??? Ach so, die Exe läuft lokal... Ciao Stefan |
AW: Laufzeitfehler bei Programmende
Wie sieht denn bei dem Fehler der Stacktrace aus?
// EDIT: Vermutlich passiert da etwas im finalization einer Unit oder bei der Freigabe eines Interfaces. Es kann auch ein weiteres Formular sein, das erst am Ende freigegeben wird und dabei einen Fehler verursacht. Zum Beispiel passiert so etwas, wenn man ein Objekt als Objekt UND als Interface anspricht und es dann aus Versehen freigibt. Dann wird am Ende das Interface versucht freizugeben, aber das Objekt ist schon weg. |
AW: Laufzeitfehler bei Programmende
Tja, wenn es im Delphi-Code nicht weiter geht, dann mußt du wohl in die Assembleransicht wechseln. :stupid:
Zeigt der Stacktrace irgendwas an? Wenn nicht, dann nochmal "F7" nach dem Fehler versuchen, eventuell vorher in den Assembler wechseln. Zitat:
Denn sonst heißt der Fehler ja "Fehler bei Adresse xxxx, Lesen/Schreiben von Adresse yyyy" und hier ist dieser Fehler an der Code-Adresse 0. Es kann natürlich auch etwas wie ein Buffer-Overflow sein, wo z.B. der Stack zerschossen wurde. |
AW: Laufzeitfehler bei Programmende
Hallo,
arbeitet Dein Programm mit Interfaces? |
AW: Laufzeitfehler bei Programmende
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 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-2025 by Thomas Breitkreuz