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. |
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. |
AW: Absturz in ntdll.dll / CriticalSection
Vielleicht Mal FastMM4 Full Debug Mode probieren...
|
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. |
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