![]() |
Exception bei Programmende
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
nach Programmende erhalte ich immer eine Exception (s. Anhang). Sie findet während des Aufrufs von _Halt0 in der System-Unit statt. Und zwar hier beim Aufruf von P:
Delphi-Quellcode:
;
if InitContext.DLLInitState = 0 then
while ExitProc <> nil do begin @P := ExitProc; ExitProc := nil; P; end Hat da jemand einen Tipp für mich? Gruß Kaloschke |
Re: Exception bei Programmende
Hast du irgendwelche Finalisierungsabschnitte (finalization) in deinen Units?
Wenn ja, dann areite diese mal schrittweise ab ... irgendwo (in deinen Abschnittden oder denen von Delphi und Co.) steckt vermutlich irgendwo ein falscher/defekter Zeiger. |
Re: Exception bei Programmende
Hi,
es gibt keine Finalisierungsabschnitte. Jeglicher Beendigungscode von mir wird abgearbeitet. Die Exeption tritt erst NACH Application.Run beim Aufruf von "end." des Hauptprgramms auf. Gruß Kaloschke |
Re: Exception bei Programmende
Erst nach diesem "end." werden die Finalisierungsabschnitte abgearbeitet.
Da du die QuellCodes hast, bisdu wohl im besitz einer Professional oder höher. In neueren Delphis, kannst du in den Projektoptionen die DebugDCUs einbinden und könntest dann schauen wo es knallt. Entweder ist in einem Abschnitt ein fehlerhafter Code oder schon vorher ist was "schlimmes" passiert. z.B. ein Bufferoverrun oder irgendwo wurde eine Instanz eines nicht (mehr) existierenden Objektes gespeichert, welches jetzt versucht wird in soeinem Abschnitt freizugeben. also Programm bis zum "end." des Projekts laufen lassen und dann entweder mit DebugUnits debuggen oder ab dieser Stelle in die CPU-Ansicht wechseln und dann bis zum "knall" durchgehn (eigentlich sollte jeweils erkennbar sein, in welcher Unit man sich grade befindet und dann wüßte man schonmal wo es in etwas passiert und könnte weiterschauen) |
Re: Exception bei Programmende
Hi,
>Da du die QuellCodes hast, bisdu wohl im besitz einer Professional oder höher. 2010 Prof. >In neueren Delphis, kannst du in den Projektoptionen die DebugDCUs einbinden >und könntest dann schauen wo es knallt. Sind eingebunden >oder ab dieser Stelle in die CPU-Ansicht wechseln und dann bis zum "knall" durchgehn >(eigentlich sollte jeweils erkennbar sein, in welcher Unit man sich grade befindet und dann wüßte man schonmal wo es in etwas >passiert und könnte weiterschauen) Hab ja am Anfang schon geschrieben, dass und wo es in der System-Unit hängt. Ab dem Aufruf von P geht ws zwar im Asm-Code weiter, aber der führt letzlich nur zum Aufruf des Errordialogs. Na, ich schau noch mal, ob ich alles wieder freigebe, was freizugeben ist. Gruß Kaloschke Autor: Delle52 |
Re: Exception bei Programmende
Delphi-Quellcode:
in diesem Code werden die Exit-Prozeduren verarbeitet und in Einer davon gibt es wohl Probleme.
if InitContext.DLLInitState = 0 then
while ExitProc <> nil do begin @P := ExitProc; ExitProc := nil; P; end Tja, und da du er Einzige mit (Test)Code bist, kannst nur du das Problem suchen. Hast du vielleicht irgendwelche Fremdkomponenten verwendet? Eventuell sind da schon Probleme bekannt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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