AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Absturz in ntdll.dll / CriticalSection

Absturz in ntdll.dll / CriticalSection

Ein Thema von OlliWW · begonnen am 22. Sep 2021 · letzter Beitrag vom 23. Sep 2021
Antwort Antwort
OlliWW

Registriert seit: 31. Aug 2011
128 Beiträge
 
#1

Absturz in ntdll.dll / CriticalSection

  Alt 22. Sep 2021, 13:52
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.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.745 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Absturz in ntdll.dll / CriticalSection

  Alt 22. Sep 2021, 14:34
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
1.699 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Absturz in ntdll.dll / CriticalSection

  Alt 22. Sep 2021, 20:24
Vielleicht Mal FastMM4 Full Debug Mode probieren...
  Mit Zitat antworten Zitat
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
228 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Absturz in ntdll.dll / CriticalSection

  Alt 23. Sep 2021, 07:22
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.
Stefan
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Jetzt rächt sich die Natur und tötet uns.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.726 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Absturz in ntdll.dll / CriticalSection

  Alt 23. Sep 2021, 10:06
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (23. Sep 2021 um 10:18 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf