Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi und Programm > Programm hängt sich auf (https://www.delphipraxis.net/157321-delphi-und-programm-programm-haengt-sich-auf.html)

ibp 7. Jan 2011 15:18

Delphi und Programm > Programm hängt sich auf
 
Hi,

seit einiger Zeit plagt mich ein Problem. Ein Programm bei dem zur Laufzeit einige Tabs und Grids erstellt werden hängt sich das Programm bei der Erstellung irgendeines Grids auf.

Leider lässt es sich nicht genau auf ein Grid reproduzieren, es ist jedes mal ein anderes. Folge ist, dass man nur noch per Task-Manager den Prozess killen kann. Es geht dann aber so weit, dass ein Explorer-Prozess auf eine CPU-Last von 50% steigt. Dabei ist es unerheblich ob ich aus Delphi heraus das Programm starte oder nicht.

Mittel debuggen gelingt es nicht den Fehler zu reproduzieren. Starte ich mein Programm neu funktioniert es und es kommt nicht mehr zum Aufhänger.

Mir fehlen mittlerweile die Ideen, woran das Problem hängen könnte.

Komischer Weise passiert das nur auf dem Entwicklungsrechner. Auf allen anderen lässt sich das Verhalten nicht provozieren.

Kennt jemand ein ähnliches Verhalten oder kann mir Tipps geben wie ich den Punkt debuggen kann? Selbst EurekaLog springt nicht an!

Danke schon mal für etwaige Antworten.

MfG

IbP

p80286 7. Jan 2011 16:54

AW: Delphi und Programm > Programm hängt sich auf
 
Das klingt sehr nach Zugriffen auf nicht initialisierte Datenbereiche.
Oder besser, die Initialisierung ist nicht in allen Fällen gleich.

Ich weiß hört sich nach "ist der Stecker drin" an, Aber soll schon mehrere Male vorgekommen sein.

Und überprüf das vollständige Programm, nicht nur den Teil wo Du Deine Grids produzierst.

Gruß
K-H

SirThornberry 7. Jan 2011 16:58

AW: Delphi und Programm > Programm hängt sich auf
 
Wenn es beim Start über den Debugger nicht klappt baue einfach mal eine Funktion ein welche dir vor dem eigentlichen Start etwas Zeit verschafft. In dieser Zeit kannst du dann dein Delphi mit dem extern gestartetem Prozess verbinden und debuggen. Oftmals hilft das Fehler zu finden die nur kommen wenn man ein Programm außerhalb des Debuggers laufen lässt.

ibp 7. Jan 2011 18:40

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von p80286 (Beitrag 1073080)
Das klingt sehr nach Zugriffen auf nicht initialisierte Datenbereiche.
Oder besser, die Initialisierung ist nicht in allen Fällen gleich.

Ich weiß hört sich nach "ist der Stecker drin" an, Aber soll schon mehrere Male vorgekommen sein.

Und überprüf das vollständige Programm, nicht nur den Teil wo Du Deine Grids produzierst.

das komische ist ja das es auf anderen Rechner problemlos läuft!

Zitat:

Zitat von SirThornberry (Beitrag 1073082)
Wenn es beim Start über den Debugger nicht klappt baue einfach mal eine Funktion ein welche dir vor dem eigentlichen Start etwas Zeit verschafft. In dieser Zeit kannst du dann dein Delphi mit dem extern gestartetem Prozess verbinden und debuggen. Oftmals hilft das Fehler zu finden die nur kommen wenn man ein Programm außerhalb des Debuggers laufen lässt.

es klappt ja immer, das ist ja das Problem, nur wenn ich zeilenweise debugge funktioniert es nicht.

stahli 7. Jan 2011 19:16

AW: Delphi und Programm > Programm hängt sich auf
 
Dann würde ich mal testweise installierte Tools und Komponenten entfernen.
Diese können ja unerwartete Seiteneffekte haben.

Als ich noch eine FlickerReduce.pas (o.ä.) in Nutzung hatte, wurden einige Formulare der IDE nicht korrekt gezeichnet. Das hatte ich zuerst als Bug im Delphi interpretiert.

p80286 7. Jan 2011 20:40

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von ibp (Beitrag 1073101)
das komische ist ja das es auf anderen Rechner problemlos läuft!

Und was ist mit gleichem Rechner und anderem Benutzer?
ggf. andere Rechte?

Gruß
K-H

ibp 8. Jan 2011 08:48

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von stahli (Beitrag 1073111)
Dann würde ich mal testweise installierte Tools und Komponenten entfernen.
Diese können ja unerwartete Seiteneffekte haben.

In der betreffenden Unit sind nur Tools und Kompos die ich auch in den anderen Units benutze, die haben und machen bisher keine Probleme gemacht. Es werden auch keine dlls oder sonstiges externes geladen.

Zitat:

Zitat von p80286 (Beitrag 1073143)
..Und was ist mit gleichem Rechner und anderem Benutzer? ggf. andere Rechte?

gute Idee -> kein Problem, Fehler lässt sich nicht provozieren im anderen Account.

aber irgend etwas muss es doch sein... :cry:

p80286 8. Jan 2011 11:06

AW: Delphi und Programm > Programm hängt sich auf
 
Also dann mit System.
Der Fehler tritt nur auf dem Entwicklungsrechner/Entwicklerkonto auf.

Aufhängen könnte ja auch eine Endlosschleife bedeuten?
Wenn die Explorer.exe so fleißig wird, hast Du mal den Filemon bemüht?
Holst Du Dir Daten über das Netz?
Liest Du die Registry aus?

was passiert wenn Du mal 5,10,60 min wartest?

Könnte es sein, das irgendwo ein Fenster aufgeht, was Du nicht siehst?

Gruß
K-H

ibp 8. Jan 2011 13:34

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von p80286 (Beitrag 1073208)
...Aufhängen könnte ja auch eine Endlosschleife bedeuten?
Wenn die Explorer.exe so fleißig wird, hast Du mal den Filemon bemüht?
Holst Du Dir Daten über das Netz?
Liest Du die Registry aus?

was passiert wenn Du mal 5,10,60 min wartest?

Könnte es sein, das irgendwo ein Fenster aufgeht, was Du nicht siehst?...

also filemon zeigt nach dem aufhängen keinerlei Requests mehr.
wenn ich dann auf das Fenster schliessen Kreuz drücke dann das...

Code:
14:07:17   MyProgram.exe:880   CLOSE   D:\Programmierung\Delphi Projects\MyProgram\MyProgram 4.3.2.08\Bin   SUCCESS      
14:07:17   MyProgram.exe:880   CLOSE   C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.6001.22319_x-ww_f0b4c2df   SUCCESS      
14:07:17   MyProgram.exe:880   CLOSE   C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202   SUCCESS      
14:07:17   MyProgram.exe:880   CLOSE   C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989   SUCCESS      
14:07:17   MyProgram.exe:880   CLOSE   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\IswTmp\Logs\ISWSHEX.swl   SUCCESS      
14:07:17   MyProgram.exe:880   OPEN   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\IswTmp\Logs\ISWSHEX.swl   SHARING VIOLATION   Options: Open Access: 00100001   
14:07:17   MyProgram.exe:880   OPEN   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\IswTmp\Logs\ISWSHEX.swl   SUCCESS   Options: Open Access: 00100001   
14:07:17   MyProgram.exe:880   QUERY INFORMATION   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\IswTmp\Logs\ISWSHEX.swl   SUCCESS   Length: 12764   
14:07:17   MyProgram.exe:880   CLOSE   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\~DF4546.tmp   SUCCESS      
14:07:17   MyProgram.exe:880   OPEN   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\~DF4546.tmp   SUCCESS   Options: Open Access: 00100001   
14:07:17   MyProgram.exe:880   QUERY INFORMATION   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\~DF4546.tmp   SUCCESS   FileInternalInformation   
14:07:17   MyProgram.exe:880   CLOSE   C:\PROGRAMME\GEMEINSAME DATEIEN\BORLAND SHARED\BDE\   SUCCESS      
14:07:17   MyProgram.exe:880   CLOSE   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\   SUCCESS      
14:07:17   MyProgram.exe:880   CLOSE   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\INMEM000.REM   SUCCESS      
14:07:17   MyProgram.exe:880   OPEN   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\INMEM000.REM   SUCCESS   Options: Open Access: 00100001   
14:07:17   MyProgram.exe:880   QUERY INFORMATION   C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\INMEM000.REM   SUCCESS   FileInternalInformation   
14:07:17   MyProgram.exe:880   CLOSE   C:\WINDOWS\FONTS\TAHOMA.TTF   SUCCESS      
14:07:17   ibserver.exe:2328   WRITE   W:\DATENB~1\MyProgram\test\RFR\MyProgram_RFR.GDB   SUCCESS   Offset: 1032192 Length: 8192   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Attributes: A   
14:07:17   ibserver.exe:2328   OPEN   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Options: Open Access: 00100020   
14:07:17   ibserver.exe:2328   OPEN   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Options: Open Access: 00100001   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   FileInternalInformation   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Length: 297984   
14:07:17   ibserver.exe:2328   CLOSE   C:\WINDOWS\system32\Msctf.dll   SUCCESS      
14:07:17   ibserver.exe:2328   QUERY INFORMATION   W:\DATENB~1\MyProgram\test\RFR\MyProgram_RFR.GDB   SUCCESS   Length: 91758592   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Attributes: A   
14:07:17   ibserver.exe:2328   OPEN   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Options: Open Access: 00100020   
14:07:17   ibserver.exe:2328   OPEN   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Options: Open Access: 00100001   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   FileInternalInformation   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Length: 297984   
14:07:17   ibserver.exe:2328   CLOSE   C:\WINDOWS\system32\Msctf.dll   SUCCESS      
14:07:17   ibserver.exe:2328   CLOSE   W:\DATENB~1\MyProgram\test\RFR\MyProgram_RFR.GDB   SUCCESS      
14:07:17   ibserver.exe:2328   OPEN   W:\DATENB~1\MyProgram\test\RFR\MyProgram_RFR.GDB   SUCCESS   Options: Open Access: 00100001   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   W:\DATENB~1\MyProgram\test\RFR\MyProgram_RFR.GDB   SUCCESS   FileInternalInformation   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Attributes: A   
14:07:17   ibserver.exe:2328   OPEN   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Options: Open Access: 00100020   
14:07:17   ibserver.exe:2328   OPEN   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Options: Open Access: 00100001   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   FileInternalInformation   
14:07:17   ibserver.exe:2328   QUERY INFORMATION   C:\WINDOWS\system32\Msctf.dll   SUCCESS   Length: 297984   
14:07:17   ibserver.exe:2328   CLOSE   C:\WINDOWS\system32\Msctf.dll   SUCCESS
danach geht dann der Explorer auf 50% CPU Last hoch...

was ich aber mit Process Exporer harausfinden konnte ist.. die 50% liegen bei USWE32.dll!CreateSystemThreads und der Stack für diesen Thread zeigt mir...
ntoskrnl.exe+0x584d
ntoskrnl.exe!IoPageRead+0xaed
hal.dll+0x2ef2


...ansonsten ich lese weder die Registry noch hole ich daten aus dem Netz, ich kann den Rechner so einen Tag lang stehen lassen und es passiert nichts!

ich werde wohl irgendwann die Nase voll haben und einfach format c: tippen :stupid:

p80286 10. Jan 2011 14:07

AW: Delphi und Programm > Programm hängt sich auf
 
[QUOTE=ibp;1073239wenn ich dann auf das Fenster schliessen Kreuz drücke dann das...
[/QUOTE]

Tut mir leid, da fällt mir jetzt auch nichts vernünftiges mehr zu ein,
nur wenn du das Programm noch auf "normalem Wege" beenden kannst, dann hat es sich ja eigentlich nicht aufgehängt!?

Sehr seltsam!

Gruß
K-H

taveuni 10. Jan 2011 15:18

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von ibp (Beitrag 1073101)
es klappt ja immer, das ist ja das Problem, nur wenn ich zeilenweise debugge funktioniert es nicht.

Hmhh.. Was klappt immer? Du startest die Applikation in der IDE ohne Breakpoint - Hängt sie dann?
Falls nein - kannst Du Dich mit 2 Breakpoints rückwärts zur Stelle bringen die den "Hänger" auslöst?
Wie kommst Du überhaupt darauf dass es etwas mit der Erstellung eines Grids zu tun hat?

Dann gäbe es noch OutputDebugString usw.
Wobei ich eher auf eine Endlosschleife tippe.

ibp 10. Jan 2011 18:29

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von p80286 (Beitrag 1073675)
..Tut mir leid, da fällt mir jetzt auch nichts vernünftiges mehr zu ein,

mir leider auch nicht :(

Zitat:

Zitat von p80286 (Beitrag 1073675)
nur wenn du das Programm noch auf "normalem Wege" beenden kannst, dann hat es sich ja eigentlich nicht aufgehängt!?

naja normal beenden ist das in diesem falle ja nicht, da das gesamte Fenster nicht mehr reagiert, bis auf eben das kleine Kreuz oben rechts.

danach "springt" ja das nicht mehr reagieren auf den Explorer thread um!

Zitat:

Zitat von taveuni (Beitrag 1073702)
Zitat:

Zitat von ibp (Beitrag 1073101)
es klappt ja immer, das ist ja das Problem, nur wenn ich zeilenweise debugge funktioniert es nicht.

Hmhh.. Was klappt immer? Du startest die Applikation in der IDE ohne Breakpoint - Hängt sie dann?

ja und wenn ich sie ohne IDE starte! Wenn ich die App dann nochmals starte läuft diese ohne Probleme durch, bis auf das der Explorer Thread nicht mehr reagiert... Folge ich muss das Konto neu starten.

Zitat:

Zitat von taveuni (Beitrag 1073702)
Wie kommst Du überhaupt darauf dass es etwas mit der Erstellung eines Grids zu tun hat?

weil ich den betreffenden Bereich so lange eingegrenzt habe bis zur Stelle an der das Grid created wird!

stahli 10. Jan 2011 18:38

AW: Delphi und Programm > Programm hängt sich auf
 
Also nochmal gefragt:

Das Problem tritt NUR auf, wenn Du Dein Programm unter der IDE ausführst UND einen Haltepunkt setzt?
Auf anderen Rechnern und anderem Account ohne Delphi und beim Start unter Delphi ohne Breakpoint läuft alles korrekt?

Dannn könnte es an einer Deaktivierung des Mainforms (oder der Anwendung?) liegen. Hast Du darauf irgend eine Reaktion definiert?
Ggf. werden dadurch auch Controls neu gezeichnet, die darauf nicht korrekt reagieren.

ibp 10. Jan 2011 19:51

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von stahli (Beitrag 1073769)
Also nochmal gefragt:

Das Problem tritt NUR auf, wenn Du Dein Programm unter der IDE ausführst UND einen Haltepunkt setzt?
Auf anderen Rechnern und anderem Account ohne Delphi und beim Start unter Delphi ohne Breakpoint läuft alles korrekt?

freeze wenn
1) Programm unter IDE ohne Breakpoints
2) Programm normal gestartet IDE läuft
3) Programm normal gestartet IDE im ACC vorhanden

bricht man dann den Thread ab -> Explorer freeze

Programm neu starten (wie auch immer siehe 1..3) -> kein freeze

Programm starten auf gleichem Rechner anderer Account -> kein freeze

p80286 11. Jan 2011 13:47

AW: Delphi und Programm > Programm hängt sich auf
 
Noch mal was überflüssiges gefragt
Bereichsüberprüfung und Konsorten sind eingeschaltet?

Gruß
K-H

ibp 11. Jan 2011 13:55

AW: Delphi und Programm > Programm hängt sich auf
 
Zitat:

Zitat von p80286 (Beitrag 1073865)
Noch mal was überflüssiges gefragt
Bereichsüberprüfung und Konsorten sind eingeschaltet?

Ja...

Nachdem ich mitbekommen habe, dass Avira Antivir Probleme mit Delphi machen kann habe ich auch schon das Antivirusprogramm gewechselt. Hat leider keine Verbesserung gebracht. Auch das ausschalten von Firewall und Antivirusprogrammen hat nichts gebracht.

Ich denke es wird leider keine Lösung geben und ich werde über kurz oder lang "Format c:" ausführen. :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 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