AGB  ·  Datenschutz  ·  Impressum  







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

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
159 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
6.159 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
2.942 Beiträge
 
Delphi 12 Athens
 
#3

AW: Absturz in ntdll.dll / CriticalSection

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

Registriert seit: 15. Sep 2008
Ort: Dubai
677 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
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (23. Sep 2021 um 10:18 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 19:28 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