![]() |
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? |
Re: Delphi 2009 IDE: Synchronize Deadlock
Hast du schon Update #3+#4 installiert?
|
Re: Delphi 2009 IDE: Synchronize Deadlock
Yep! Hat aber nichts gebracht...
|
Re: Delphi 2009 IDE: Synchronize Deadlock
Auch mal mit dem inoffiziellen
![]() (Ohne jetzt auf die Changelog geschaut zu haben, ist aber nie verkehrt) |
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... |
Re: Delphi 2009 IDE: Synchronize Deadlock
Zitat:
|
Re: Delphi 2009 IDE: Synchronize Deadlock
Zitat:
Vielleicht blockiert irgend ein anderer Prozess der IDE die synchronisierten Abschnitte? Ein synchronisierter Abschnitt der BDE, der mir immer wieder untergekommen ist:
Delphi-Quellcode:
Auch hatte ich Probleme bei der borlndmm.dll (Zugriffsverletzung bei Adresse 20F04D5B)
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 Kann jemand damit etwas anfangen? |
Re: Delphi 2009 IDE: Synchronize Deadlock
...noch ´ne neue Erkenntnis:
Delphi 2009 unter Vista --> Synchronize bleibt stecken Delphi 2009 unter XP --> kein Problem! |
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. |
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. |
Re: Delphi 2009 IDE: Synchronize Deadlock
Warum machst du das mitten im Programm verlauf ?
Ich meine zu wissen das wir das nur beim beenden machen. |
Re: Delphi 2009 IDE: Synchronize Deadlock
So sieht das bei uns aus
Delphi-Quellcode:
procedure DBIClose;
begin if BDEisInitialized then //Globale Variable wird beim Initialize der BDE Gesetzt Check(DBIExit); //Check ist die dbtables.check funktion BDEisInitialized := false; end; |
Re: Delphi 2009 IDE: Synchronize Deadlock
Zitat:
Ich kann mir da verschiedene Möglichkeiten bei mir im Programm vorstellen, wie ich das mit dem DBIExit machen könnte. Das Schwierige war, erstmal festzustellen, wo und warum dieser Deadlock überhaupt entsteht. Was ich aber noch nicht herausgefunden habe ist, warum dieses Problem nur in der IDE von Delphi 2009 auftritt und das Programm sonst keine Probleme macht... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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