Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Absturz in ntdll.dll / CriticalSection (https://www.delphipraxis.net/208858-absturz-ntdll-dll-criticalsection.html)

OlliWW 22. Sep 2021 12:52

Absturz in ntdll.dll / CriticalSection
 
Hallo,

Ich debugge gerade ein Problem, das sich nicht wirklich nachstellen lässt und sporadisch auf Kundensystemen auftritt. Ich konnte bisher keine Gemeinsamkeit erkennen (Virenscanner, Betriebssystem, Windows Update stand etc.).

Beim Formcreate und FormDestroy haben wir derzeit häufig Abstürze mit folgendem Callstack:

Delphi-Quellcode:
7ffb818d +082 ntdll.dll                      RtlDeleteCriticalSection
006c05a5 +055 MainTool.exe Vcl.Graphics              TCanvas.Destroy
0070adb8 +028 MainTool.exe Vcl.Controls              TControlCanvas.Destroy
004109f5 +015 MainTool.exe System                    TObject.Free
0072127e +01e MainTool.exe Vcl.Controls              TCustomControl.Destroy
00712ef3 +103 MainTool.exe Vcl.Controls              TWinControl.Destroy
0072128c +02c MainTool.exe Vcl.Controls              TCustomControl.Destroy
00712ef3 +103 MainTool.exe Vcl.Controls              TWinControl.Destroy
00798e1f +04f MainTool.exe Vcl.ComCtrls              TTabSheet.Destroy
00712ef3 +103 MainTool.exe Vcl.Controls              TWinControl.Destroy
00797538 +0b8 MainTool.exe Vcl.ComCtrls              TCustomTabControl.Destroy
00799ae4 +074 MainTool.exe Vcl.ComCtrls              TPageControl.Destroy
00712ef3 +103 MainTool.exe Vcl.Controls              TWinControl.Destroy
0072128c +02c MainTool.exe Vcl.Controls              TCustomControl.Destroy
00712ef3 +103 MainTool.exe Vcl.Controls              TWinControl.Destroy
008ca2ce +06e MainTool.exe Vcl.Forms                 TScrollingWinControl.Destroy
008cc061 +221 MainTool.exe Vcl.Forms                 TCustomForm.Destroy
0168d599 +1a9 MainTool.exe MainForm          829 +22 TMainForm.Destroy

Es gibt zwei Arten, entweder beim Initialisieren der Form oder beim Destroy.

Entweder ist es "RtlDelteCrtiticalSection" oder "RtlEnterCriticalSection".

Ich kann mir leider keinen Reim darauf machen, da dies ja schon sehr tief in Windows verwurzelt ist. Ich weiß es sind nicht viele Informationen, aber vielleicht hat jemand ja eine Idee, wie ich dem Fehler auf die Spur kommen könnte. Oder wo ich anfangen sollte zu suchen.
Normalerweise würde ich sagen, sollten die systemnahen Funktionen so sicher sein, dass es nicht andauernd zu einem Absturz beim Aufruf dieser WinAPI Funktionen kommen darf.

Vielleicht gibt es ja auch mal wieder ein Windows Update, was Dinge kaputt macht.

Der schöne Günther 22. Sep 2021 13:34

AW: Absturz in ntdll.dll / CriticalSection
 
Spontan hätte ich gesagt du gibst was frei was schon freigegeben ist.

Da wird ein TCustomControl freigegeben das seinen Canvas freigibt und den scheint es nicht mehr zu geben, jedenfalls läuft das Abräumen der Critical Sections welche den Canvas absichern ins Leere, evtl. weil die schon nicht mehr existieren.

TurboMagic 22. Sep 2021 19:24

AW: Absturz in ntdll.dll / CriticalSection
 
Vielleicht Mal FastMM4 Full Debug Mode probieren...

Sinspin 23. Sep 2021 06:22

AW: Absturz in ntdll.dll / CriticalSection
 
Ich denke auch es ist ein Dialog der zweimal freigegeben wird. Eventuell gibt es vorher eine anderen Excetion die aber untergeht durch die zweiten.
Versuch es mal mit MadExcept.

himitsu 23. Sep 2021 09:06

AW: Absturz in ntdll.dll / CriticalSection
 
Schau auch mal, dass du bei (globalen) Variablen mehr FreeAndNil anstatt Free benutzt.

Und z.B. MadExcept oder der große FastMM haben auch DebugFeatures, wo bei doppeltem Free Destroy ein versändlicher Fehler ausgelöst wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:15 Uhr.

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