AGB  ·  Datenschutz  ·  Impressum  







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

Delphi 12.3 mal wieder verreckt

Ein Thema von himitsu · begonnen am 7. Sep 2025 · letzter Beitrag vom 9. Sep 2025
 
Benutzerbild von himitsu
himitsu

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

Delphi 12.3 mal wieder verreckt

  Alt 7. Sep 2025, 22:55
So, nachdem Delphi schonwieder, mitten beim Schreiben einfach so verreckt ist.
(diesmal nur hängen geblieben, aber wortlos einfach verschwunden gab es auch schon öfters)

Außerdem war ich nachlässig, nachdem das mit dem Recovery in letzter Zeit gut funktionierte.
Beim Start einer neuen (nach Absturz) oder einer zweiten IDE-Instanz (um was anderes nachgucken zu können)
kam ja immer ein (so in etwa)
> Hab Recovery gefunden, soll ich laden?
:: nein
> OK, soll ich's dann Löschen?
:: nein

Nur diesmal .... Ich weiß jetzt nicht, ob die neue Instanz das gelöscht hat, oder ob es wirklich keine Recovery-Datei gab.



OK, nun bin ich diesmal dazu gekommen nachsehn zu wollen, was da eigentlich hängt.
Allgemein ist es so, bzw. es kommt mir so vor, als wenn beim Hängenbleiben zufällig fast immer ein IDE-Insight-Hint zu sehen ist.

Ich hab ja dieses schrottige Moddeling deaktiviert, also dachte ich es gibt kein .NET mehr,
aber wieso sehe ich da 4 oder 5 Threads, wie sie in der clr.dll (C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll) abhängen?
(bei ntdll.ZwRemoveIoCompletion oder ntdll.NtWaitForMultipleObjects)

Außerdem hängt irgendein Thread im Synchronize
Zitat:
:77d4905c ntdll.ZwWaitForSingleObject + 0xc
:77987c42 KERNELBASE.WaitForSingleObject + 0x12
rtl.System.SysUtils.WaitForSyncWaitObj(???,???)
rtl.System.SysUtils.WaitOrSignalObj(???,$FFFFFFFF, ???)
rtl.System.TMonitor.Wait($3BF26E8,4294967295)
rtl.System.TMonitor.Wait($3E2775E0,$2292730,429496 7295)
rtl.System.Classes.TThread.Synchronize($480AFDE8,F alse,False)
rtl.System.Classes.TThread.Synchronize(???,(System .Classes.TThread.CallOnTerminate,$FB8E180))
rtl.System.Classes.TThread.Synchronize((System.Cla sses.TThread.CallOnTerminate,$FB8E180))
rtl.System.Classes.TThread.DoTerminate
rtl.System.Classes.ThreadProc($FB8E180)
rtl.System.ThreadWrapper($3E1E7610)
:76275d49 kernel32.BaseThreadInitThunk + 0x19
:77d3d6db ntdll.RtlInitializeExceptionChain + 0x6b
:77d3d661 ; C:\Windows\System32\ntdll.dll
Von den Adressen im Stack oder den Parametern zeigt leider keine auf die Thread-Prozedur,
damit man rausbekommen könnte, welcher Thread das ist, bzw. was er machen wollte.

Emba ignoriert leider immernoch meinenm Request, endlich mal die Threadnamen "richtig" zu setzen.


Und nun der Hauptthread.
Der hat 'nen Deadlock im Delphi-Speichemanager,
während er grade einen Stacktrace auflösen wollte, oder so,
nachdem irgendein ein SetLength in der coreide abgeraucht ist.

Zitat:
:779922d7 KERNELBASE.SleepEx + 0x7
:7158a009 ; C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\borlndmm.dll
:69464334 exceptiondiag290.@Jcldebug@TJclStackInfoList@$bctr $qqroipvot3t3 + 0xa8
:6946426d exceptiondiag290.@Jcldebug@TJclStackInfoList@$bctr $qqroipvot3 + 0x31
:6946792e ; c:\program files (x86)\embarcadero\Studio\23.0\bin\exceptiondiag290 .bpl
rtl.System.SysUtils.Exception.RaisingException(??? )
rtl.System.SysUtils.GetExceptionObject($133EF5C)
:69452b6e ; c:\program files (x86)\embarcadero\Studio\23.0\bin\exceptiondiag290 .bpl
:69452d56 ; c:\program files (x86)\embarcadero\Studio\23.0\bin\exceptiondiag290 .bpl
rtl.System._HandleAnyException
:6dde1339 @HandleAnyException + $35
:77d84214 ; C:\Windows\System32\ntdll.dll
:77d4b66f ntdll.KiUserExceptionDispatcher + 0xf
rtl.System._DynArraySetLength
:6dde6a8e @DynArraySetLength + $A
:6ed92b18 ; C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\coreide290.bpl
:6ed88574 ; C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\coreide290.bpl
:6ed88b7b coreide290.@Editorcontrol@TCustomEditControl@EdRef resh$qqro + 0x57
:6edab6e3 ; C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\coreide290.bpl
:6edac28f coreide290.@Kbclient@TIDEKBDChildAPI@ProcessKeyStr oke$qqriiii + 0xa3
:6ed971d2 ; C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\coreide290.bpl
:6ed86e5b coreide290.@Editorcontrol@TCustomEditControl@CNKey Down$qqrr22Winapi@Messages@TWMKey + 0x9f
vcl.Vcl.Controls.TWinControl.WndProc((256, 90, 1376257, 0, 90, 0, (), 1, 21, (), 0, 0, ()))
vcl.Vcl.Controls.TWinControl.MainWndProc(???)
rtl.System.Classes.StdWndProc(6033274,48384,90,137 6257)
:75d19a63 ; C:\Windows\System32\user32.dll
:75d07bdd ; C:\Windows\System32\user32.dll
:75d07680 ; C:\Windows\System32\user32.dll
:75d13ee9 ; C:\Windows\System32\user32.dll
:77d4b646 ntdll.KiUserCallbackDispatcher + 0x36
:75d20438 ; C:\Windows\System32\user32.dll
:75d073a6 user32.SendMessageW + 0x46
vcl.Vcl.Forms.TApplication.IsKeyMsg(???)
Hätte mir mehr gewünscht, dass sich besser rausstellt, was wo nun warum sich sperrt.


('nen 12.3 ohne Erweiterungen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 8. Sep 2025 um 09:31 Uhr)
  Mit Zitat antworten Zitat
 


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 16:31 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