Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi 2009 IDE: Synchronize Deadlock (https://www.delphipraxis.net/135085-delphi-2009-ide-synchronize-deadlock.html)

Manfred D2009 4. Jun 2009 14:31


Delphi 2009 IDE: Synchronize Deadlock
 
Hallo zusammen,

ich habe seit ein paar Tagen ein Problem, an dem ich mir langsam die Zähne ausbeiße: In einer MDI-Anwendung verwenden Threads synchronisierte Abschnitte. Das Programm funktioniert seit längerer Zeit und kann problemlos in Delphi2007 bearbeitet werden.

Seit der Portierung auf Delphi2009 kann mit dem Programm ebenfalls ganz gut gearbeitet werden. Allerdings hängt sich der integrierte Debugger auf, sobald ein Thread eine synchronisierte Routine betreten will.

Hat jemand eine Ahnung, ob da grundsätzlich was faul ist?

Bernhard Geyer 4. Jun 2009 14:42

Re: Delphi 2009 IDE: Synchronize Deadlock
 
Hast du schon Update #3+#4 installiert?

Manfred D2009 4. Jun 2009 15:02

Re: Delphi 2009 IDE: Synchronize Deadlock
 
Yep! Hat aber nichts gebracht...

alphaflight83 4. Jun 2009 15:07

Re: Delphi 2009 IDE: Synchronize Deadlock
 
Auch mal mit dem inoffiziellen IDE-Fixpack von Andreas Hausladen versucht?
(Ohne jetzt auf die Changelog geschaut zu haben, ist aber nie verkehrt)

Manfred D2009 4. Jun 2009 15:47

Re: Delphi 2009 IDE: Synchronize Deadlock
 
Danke für den Tipp, hat aber leider auch nicht weitergeholfen!

Wenn das so ein ausergewöhnliches Problem ist (eine Mini-Thread Anwendung mit Synchronize konnte ich bei mir debuggen), vielleicht könnt ihr mir einen Rat geben, wie ich das ganze besser untersuchen kann...

jbg 4. Jun 2009 16:56

Re: Delphi 2009 IDE: Synchronize Deadlock
 
Zitat:

Zitat von Manfred D2009
Danke für den Tipp, hat aber leider auch nicht weitergeholfen!

Schließe mal das "Lokale Variablen" Fenster bevor du in die synchronisierte Methode eintrittst.

Manfred D2009 5. Jun 2009 07:30

Re: Delphi 2009 IDE: Synchronize Deadlock
 
Zitat:

Schließe mal das "Lokale Variablen" Fenster bevor du in die synchronisierte Methode eintrittst.
Das wäre eine Fehler-Möglichkeit, die ich mir auch gut vorstellen könnte. Allerdings hat es nicht geholfen das Fenster für die lokalen Variablen (und im Anschluss auch mal alle anderen Debug-Fenster) auszuschalten.

Vielleicht blockiert irgend ein anderer Prozess der IDE die synchronisierten Abschnitte? Ein synchronisierter Abschnitt der BDE, der mir immer wieder untergekommen ist:

Delphi-Quellcode:
ntkrnlpa.exe!KeWaitForMultipleObjects+0xabc
ntkrnlpa.exe!KeWaitForSingleObject+0x492
ntkrnlpa.exe!KeTestAlertThread+0x78
ntkrnlpa.exe!KeSetTimerEx+0x78e
ntkrnlpa.exe!KeWaitForSingleObject+0x492
ntkrnlpa.exe!NtWaitForSingleObject+0xc8
ntkrnlpa.exe!ZwQueryLicenseValue+0xbc6
ntdll.dll!KiFastSystemCallRet
kernel32.dll!WaitForSingleObject+0x12
vclide120.bpl!IdevirtualtreesPrtStretchDrawDIB$qqrp16GraphicsTCanvasrx11TypesTRectp16GraphicsTBitmap+0x9c6
rtl120.bpl!ClassesCheckSynchronize$qqri+0x239
rtl120.bpl!SystemAssert$qqrx20SystemUnicodeStringt1i+0x4a
kernel32.dll!BaseThreadInitThunk+0x12
ntdll.dll!RtlInitializeExceptionChain+0x63
ntdll.dll!RtlInitializeExceptionChain+0x36
Auch hatte ich Probleme bei der borlndmm.dll (Zugriffsverletzung bei Adresse 20F04D5B)

Kann jemand damit etwas anfangen?

Manfred D2009 5. Jun 2009 10:24

Re: Delphi 2009 IDE: Synchronize Deadlock
 
...noch ´ne neue Erkenntnis:

Delphi 2009 unter Vista --> Synchronize bleibt stecken
Delphi 2009 unter XP --> kein Problem!

Manfred D2009 16. Jun 2009 06:59

Re: Delphi 2009 IDE: Synchronize Deadlock
 
...HILFE!

Ich hänge immer noch mit meinen Problem fest. Hat denn niemand eine Idee, an was es sonst noch liegen könnte.

Weiß vielleicht jemand, wie ich die Prozesse von Vista besser debuggen kann, damit ich nachvollziehen kann, woher die Prozesse kommen, die im synchronisierten Abschnitt stecken bleiben.

Manfred D2009 3. Jul 2009 11:40

Re: Delphi 2009 IDE: Synchronize Deadlock
 
Hallo Leute,

...habe mich jetzt mal wieder mit meinem Lieblingsthema beschäftigt: Mittlerweile weiß ich, das die synchronisierten Routinen nicht mehr aufgerufen werden, wenn sich das Programm zuvor mit der BDE beschäftigt hat. Vorher geht´s!

Der Fehler in der IDE tritt wohl dann auf, wenn ich die Routine DBIExit aufrufe.


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