Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler in finalizeunits unit 28 (https://www.delphipraxis.net/95697-fehler-finalizeunits-unit-28-a.html)

ImpactMG 11. Jul 2007 18:30


Fehler in finalizeunits unit 28
 
hallo,

habe ein Problem und bin am Verzweifeln. Delphi 2007
Es ist ein recht grosses Projekt, und _manchmal_ (leider nicht immer, ich kann nicht herausfinden wovon es ebhängt) passiert beim Beenden des Programms in finalizeunits in unit 28 oder 27 :) eine access violation, zugriff auf adresse 0000000. Ich bin alle finalizations-sections durchgegangen, und der fehler passiert nach der letzten von mir geschriebenen finalization. Der zahl nach (28) nehme ich an, dass es eine unit ziemlich "tief" ist - sprich von delphi selbst. Wie kann ich herausfinden welche Unit Probleme macht? Die Datenstrukturen in System.pas sagen mir leider wenig.

Habe schon Tage beim Debuggen verloren und komme nicht weiter

kann jemand helfen?

danke

lg
marius

mkinzler 11. Jul 2007 18:33

Re: Fehler in finalizeunits unit 28
 
Der Fehler weist auf einen Zugriff auf ein nicht instantiirtes bzw. bereits freigegebenes Objekt hin. Wie gibst du frei (FreeAnNil())?

ImpactMG 12. Jul 2007 07:08

Re: Fehler in finalizeunits unit 28
 
nicht alles, das projekt wurde von d5 auf d2007 portiert und ist ziemlich gross. gibt es eine chance den fehler einzugrenzen?

mkinzler 12. Jul 2007 07:12

Re: Fehler in finalizeunits unit 28
 
Dir ist doch bekannt das im im finalization-Teil der Units 27 oder 28 auftritt.

alzaimar 12. Jul 2007 07:27

Re: Fehler in finalizeunits unit 28
 
Nur wie bekommt man denn raus, wer Unit #27 und #28 ist?

SirThornberry 12. Jul 2007 07:28

Re: Fehler in finalizeunits unit 28
 
du solltest dir den callstack anschauen. Es bringt dir nichts wenn du heraus findest das der Fehler in der unit System auftaucht wenn diese versucht etwas bereits frei gegebenes nochmal freizugeben. Du solltest dann eher anhand des Stacks heraus finden was versucht wurde erneut frei zu geben (falls das der Fehler ist)

alzaimar 12. Jul 2007 07:39

Re: Fehler in finalizeunits unit 28
 
Weiterhin könnte der Einsatz von FastMM oder MemCheck etwas bringen.

Christian Seehase 12. Jul 2007 09:42

Re: Fehler in finalizeunits unit 28
 
Moin Marius,

Zitat:

Zitat von alzaimar
Weiterhin könnte der Einsatz von FastMM oder MemCheck etwas bringen.

nicht zu vergessen:

madexcept und Eurekalog

Muetze1 12. Jul 2007 12:14

Re: Fehler in finalizeunits unit 28
 
Schalte in den Projektoptionen beim Compiler die Option "Mit Debug-DCUs" ein und erstelle das komplette Projekt neu. Dann kannst du mit F7 und F8 das Finalization beim beenden der Applikation komplett durchgehen. Du kannst dafür ein Brechpunkt vor dem "end." im DPR setzen und von dort dann mit F7 hinterhergehen.

ImpactMG 13. Jul 2007 14:10

Re: Fehler in finalizeunits unit 28
 
Vielen Dank für die Tips! Habe jetzt mal überall FreeAndNil angeführt und in jedem Destructor jeder Klasse if Assigned() then FreeAndNil()... angegeben
warte jetzt bis der Fehler wieder kommt

Die exception kommt leider _nach_ jeder im programmcode erfassten finalization section


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr.
Seite 1 von 2  1 2      

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