AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exception bei Programmende

Ein Thema von Delle52 · begonnen am 29. Nov 2009 · letzter Beitrag vom 29. Nov 2009
Antwort Antwort
Delle52

Registriert seit: 18. Nov 2009
8 Beiträge
 
#1

Exception bei Programmende

  Alt 29. Nov 2009, 15:15
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
Miniaturansicht angehängter Grafiken
error_250.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#2

Re: Exception bei Programmende

  Alt 29. Nov 2009, 15:26
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Delle52

Registriert seit: 18. Nov 2009
8 Beiträge
 
#3

Re: Exception bei Programmende

  Alt 29. Nov 2009, 15:41
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: Exception bei Programmende

  Alt 29. Nov 2009, 16:30
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Delle52

Registriert seit: 18. Nov 2009
8 Beiträge
 
#5

Re: Exception bei Programmende

  Alt 29. Nov 2009, 16:56
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: Exception bei Programmende

  Alt 29. Nov 2009, 17:10
Delphi-Quellcode:
if InitContext.DLLInitState = 0 then
    while ExitProc <> nil do
    begin
      @P := ExitProc;
      ExitProc := nil;
      P;
    end
in diesem Code werden die Exit-Prozeduren verarbeitet und in Einer davon gibt es wohl Probleme.


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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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