AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Allgemeine Schutzverletzung bei Programmende
Thema durchsuchen
Ansicht
Themen-Optionen

Allgemeine Schutzverletzung bei Programmende

Ein Thema von freimatz · begonnen am 14. Mär 2020 · letzter Beitrag vom 14. Mär 2020
Antwort Antwort
freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#1

Allgemeine Schutzverletzung bei Programmende

  Alt 14. Mär 2020, 08:56
Hallo,
seit etlichen Wochen plagen mich allgemeine Schutzverletzungen bein Programmende und ich komme nicht weiter.
Mit bestimmten Ständen meiner SW und einer bestimmten Bedienung tritt er recht zuverlässig auf.

Mit bestimmten Ständen meine ich Branches in git ab einem commit. Mit Bedienung meine ich z.B. Programm starten und sofort wieder beenden. Das heist aber nicht dass ich nur bisecten muss und ich hätte das Problem. Commit A ist noch symptomfrei, wenn ich dann nur eine Methode umbenenne und eine andere ungebraucht lösche "knallts". Oder wenn commit B geht, habe ich nur ein Dialogfenster vergrössert und schon "knallts".

Mit FastMM FullDebugMode sieht der Callstack so aus:
System._IntfClear(???)
:004112a4 @IntfClear + $10
dxDockPanel.TdxDockPanel.Destroy
Vcl.Controls.TWinControl.Destroy
Vcl.Controls.TCustomControl.Destroy
dxDockControl.TdxCustomDockControl.Destroy
dxDockControl.TdxTabContainerDockSite.Destroy
Vcl.Controls.TWinControl.Destroy
Vcl.Controls.TCustomControl.Destroy
dxDockControl.TdxCustomDockControl.Destroy
dxDockControl.TdxDockSite.Destroy
Vcl.Controls.TWinControl.Destroy
Vcl.Forms.TScrollingWinControl.Destroy
Vcl.Forms.TCustomForm.Destroy
:00e20c62 TdxCustomRibbonForm.Destroy + $26
Fm_main.TVollMainForm.Destroy
System.TObject.Free
System.Classes.TComponent.DestroyComponents
Vcl.Forms.DoneApplication
System.SysUtils.DoExitProc
System._Halt0


Ohne diese Option (aber mit EnableMemoryLeakReporting) so:
System.TMonitor.Destroy
System.TInstBucket.Finalize
System.TInstHashMap.Finalize
System.Finalization
System.FinalizeUnits
:004b6c86 InterceptFinalizeUnits + $5A


Mein DevExpress ist drei Jahre alt. Dort habe ich nicht gefunden, dass da ein Bug offen wäre.

Mit madExcept mit "instantly crash on ..." geht nicht wegen zu wenig Speicher.
Mit madExcept und memory leak detection tritt das Problem nicht auf.

Wie kann ich das Problem beheben? Wie finde ich das raus. Schreibt da irgendwas im Speicher falsch rum? Wird etwas doppelt freigegeben? Müsste dann aber doch FastMM mit FullDebugMode finden. Memory Leaks gibt es welche, aber die tun ja doch nicht weh solange man genug Speicher hat.
Meine App ist leider auch nicht gerade klein (>500 Dateien mit 700k Zeilen)

Ich hatte schon mal so was ähnliches, aber mit anderen Symptomen

Geändert von freimatz (14. Mär 2020 um 09:00 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Allgemeine Schutzverletzung bei Programmende

  Alt 14. Mär 2020, 11:52
Das du es auf einen Commit einschränken kannst ist doch schon mal sehr gut. Mach doch jetzt einfach einen Diff zwischen dem Commit bei dem der Fehler noch nicht auftritt und dem, bei dem der Fehler gut simuliert werden kann. Dann solltest du doch recht schnell den Verursacher finden können.

EDIT: Ich glaube ich habe nicht gut genug gelesen. Aber vielleicht hilft es ja doch, einen Diff zu machen. Eventuell solltest du das gleiche was du oben beschreibst mal auf einem etwas älteren Stand auch testen (auf einem anderen Branch) und dich immer weiter in der Commit History vorarbeiten. Wenn du dann an einen Punkt kommst an dem es passiert, dann kannst du da ja wieder einen Diff machen.

Geändert von Aviator (14. Mär 2020 um 11:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#3

AW: Allgemeine Schutzverletzung bei Programmende

  Alt 14. Mär 2020, 11:54
Ich vermute, der Fehler ist bereits vorher drin, schlägt aber wegen zufällig harmloser Speicherinhalte nicht zu.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Allgemeine Schutzverletzung bei Programmende

  Alt 14. Mär 2020, 11:55
Ich vermute, der Fehler ist bereits vorher drin, schlägt aber wegen zufällig harmloser Speicherinhalte nicht zu.
Das denke ich auch. Und mit irgendeiner Änderung wird ein Speicherbereich angesprochen der vorher nie angesprochen wurde.
  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 16:44 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