Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi 2009 - Programm hängt manchmal beim beenden (https://www.delphipraxis.net/152772-delphi-2009-programm-haengt-manchmal-beim-beenden.html)

Codewalker 29. Jul 2010 19:59

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
Ich habe ein ähnliches Problem, aber ohne Verwendung von Datenbankkomponenten. Es sind zwar eine Reihe von Komponenten mit dabei (JVCL, Andorra2D, etc.) - aber der Fehler ist auch nicht wirklich reproduzierbar. Manchmal beende ich das Programm und dann hängt Delphi und es dauert teilweise 20 Sekunden, bis der Debugger den Prozess wirklich schließt und Delphi wieder reagiert. Starte ich das Programm danach erneut und mache genau das gleiche kann es sein, dass es zu keinem Hänger kommt.
Wie würdet ihr so einen Fehler finden? Es bremst einen wirklich übelst beim Programmieren...

Edit: Habe auch mal alle .dcu-Dateien etc. gelöscht -> kein Effekt

Codewalker 8. Aug 2010 21:30

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
*Push*
Bin bisher nicht weitergekommen - hat keiner eine Idee?

Schorschi5566 8. Aug 2010 23:38

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
Hallo Codewalker,

auch wenn der Fehler nicht zu reproduzieren ist, musst Du ihn irgendwie eingrenzen.

Oder hängt Dein Programm auch, wenn Du gar nichts tust?

Unter welchen Umständen tritt das Problem auf? Tritt es auch ohne Delphi auf?

Wenn Du einen bestimmten Codeblock im Verdacht hast, versuche ihn mal wegzulassen oder mit anderem Code zu ersetzen oder natürlich zu debuggen.

Dann wirst Du dem Problem schon auf die Spur kommen. :)

Benutzt Du eigene Pointer? Wenn Delphi solche "Kunstpausen" macht, war es bei mir schon häufig so, dass ich irgendwo ganz übel im Speicher rumgemalt hatte. 8-)


Grüße,
Uwe

Codewalker 9. Aug 2010 08:22

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
Zitat:

Zitat von Schorschi5566 (Beitrag 1040319)
Oder hängt Dein Programm auch, wenn Du gar nichts tust?

Nein, es geht ja darum, dass - wenn ich mein Programm beende - der Prozess nicht geschlossen wird. Und solange der Prozess läuft, kehrt der Debugger nicht zurück. Deswegen habe ich auch keinen Codeteil im Verdacht, weil das Debuggen da eigentlich schon vorbei ist. Ist habe in der Zwischenzeit mal AQTime benutzt und wollte herausfinden, wo er so lange verweilt, aber auch AQTime beendet die Zeitmessung vorher.

Zitat:

Zitat von Schorschi5566 (Beitrag 1040319)
Unter welchen Umständen tritt das Problem auf?

Keine Ahnung, passiert wahllos in ca. 40% der Fälle.

Zitat:

Zitat von Schorschi5566 (Beitrag 1040319)
Tritt es auch ohne Delphi auf?

Ja, aber dann fällt es nicht auf, weil es kein Fenster oder ähnliches gibt, sondern der Prozess nur noch für einige Sekunden im TaskManager zu sehen ist. Aber beim Debuggen ist das halt viel nerviger.

Zitat:

Zitat von Schorschi5566 (Beitrag 1040319)
Benutzt Du eigene Pointer? Wenn Delphi solche "Kunstpausen" macht, war es bei mir schon häufig so, dass ich irgendwo ganz übel im Speicher rumgemalt hatte. 8-)

Ich nicht, aber Andorra nutzt einige Konstrukte, um dynamisch mit Plugins arbeiten zu können. Das war aber bisher nie ein Problem.

Ich werde einfach mal in alle Units im finalization-Abschnitt ein OutputDebugString einbauen und dann mal sehen, wo ich überall ankomme. Evtl. hilft das weiter. :glaskugel:

blackfin 9. Aug 2010 09:15

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
Das Problem habe ich auch manchmal...eine definierte Lösung habe ich dafür auch noch nicht gefunden.
Ich weiss nur, woran es ungefähr liegt, falls es bei dir auch um eine 3D-Applikation geht: Manchmal braucht der Treiber der Grafikkarte irgendwie unverschämt lange, um den Rendering Context zu deaktivieren. Manchmal ja, manchmal nein.
Ich habe bei mir das ganze schonmal runtergetrackt und gesehen, dass da anscheinend noch der Graka-Treiber Aufräumarbeiten tätigt, und das bei mir teilweise bis zu einer Minute!!!
Ich würde das auch gerne loswerden, da es wirklich nervt! Allerdings habe ich festgestellt, dass das teilweise auch bei kommerziellen Spielen auftritt, dass es ewig dauert, bis das Spiel endlich beendet wird.

Codewalker 9. Aug 2010 09:54

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
:thumb: Das klingt treffend. Ich habe das in zwei Projekte, eines mit Andorra (definitiv mit 3D-Beschleunigung) und in einer Filmverwaltung mit CoverFlow (von TMsSoftware), dass auch eine DirectX-Surface nutzt. Von daher könnte genau dass bei mir auch die Ursache sein.
Einerseits beruhigt es mich ja, dass ich keinen Blödsinn programmiert habe, aber andererseits kann man dagegen auch nichts tun.
Vielen Dank für den Hinweis

p80286 9. Aug 2010 17:21

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
Zitat:

Zitat von Codewalker (Beitrag 1040397)
Einerseits beruhigt es mich ja, dass ich keinen Blödsinn programmiert habe,..

Schau mal nach ob Du Dich nicht "verzeigert" hast. Das hatte bei mir mal solche Auswirkungen. (Früher oder später knallt's dann aber doch)

Und die Speicherfreigabe am Programmende kann manchmal arg lange dauern

Gruß
K-H

Schorschi5566 9. Aug 2010 17:56

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
Halle Codewalker,

na ja, wenn es tatsächlich mit den Treibern der Grafikkarte zusammenhängt, könnte man ja mal verschiedene Treiber durchtesten und schauen ob sich das Verhalten ändert. :)

Ich habe mal 'nen Sudoku-Pseudo-Solver gebaut, der bei manchen Lösungsansätzen auch noch ewig nach der Lösung "rumgemacht" hat. Mehr als 10 Sekunden waren das aber nie und das waren offenbar nur Aufräumarbeiten, die Delphi durchgeführt hat, wenn viele Objekte gelöscht werden.

Kann also auch ohne 3D-Kram passieren. ;)


Grüße,
Uwe

zeras 9. Aug 2010 19:22

AW: Delphi 2009 - Programm hängt manchmal beim beenden
 
Ich habe auch öfters einmal, wenn ich den ganzen Tag programmieren und debugge, dass sich D2009 aufhängt. Dann kommt manchmal beim Speichern eine Meldung und danach geht gar nichts mehr. Dann heißt es nur noch Windows runterfahren und neu starten in der Hoffnung, dass vorher alles gesichert war. Letzten Sonntag war es wieder so weit. Wie gesagt, habe ich D2009 und TMS und nun ein wenig getestet mit Firebird und IB. Ich muss wahrscheinlich dann Mittags mal Runterfahren und neu starten. Dann hält es meistens bis zum Abend durch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr.
Seite 2 von 2     12   

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