AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

AV bei VCL.Forms.DoneApplication

Ein Thema von hzzm · begonnen am 25. Aug 2017 · letzter Beitrag vom 29. Aug 2017
Antwort Antwort
Seite 1 von 2  1 2   
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#1

AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 08:48
Delphi-Version: 10 Seattle
Circa jedes 10. Mal beim Schliessen meiner Anwendung kommt mein weisser Wal wieder zum Vorschein.

Vielleicht fehlt mir nur das Wissen, hier effektiv zu Debuggen.
Ich komme nicht weiter; woher kommt diese Access Violation oder welche Schritte kann ich unternehmen, um der Sache auf den Grund zu gehen?

Sorry fuer den screenshot der Situation. Aus undefinierbaren Gruenden denke ich, man kann sich so besser reinversetzen.
Miniaturansicht angehängter Grafiken
av-tcustomform-hide.jpg  
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 09:16
Hallo,
wie gross ist denn deine Anwendung?

Ansatzpunkte sind:
- Speicherfehler
- Fenster 2 mal geschlossen
- Interfaces falsch benutzt (z.B. kein const bei Übergabe als Parameter)
- Frames
- Window-MessageLoop überschrieben

usw.

Herangehenseise:
- FastMM4 benutzen (also erste Unit in die DPR rein)
- so nachstellen, dass nicht bei jedem 10., sondern immer auftritt
also rausbekommen, was du konkret machst
- alle Unter-Fenster/Code komplett ausblenden und schrittweise wieder einblenden

Viel Glück
Heiko

Geändert von hoika (25. Aug 2017 um 09:39 Uhr)
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 09:22
wie gross ist denn deine Anwendung?
Danke fuer Deinen Input.
Die Anwendung ist 82MB gross und verwendet vorrangig Frames statt Forms.

Den MessageLoop habe ich nicht ueberschrieben.

Beim Click des Haupt-Schliessen-Buttons fuehre ich "Application.Terminate;" aus. Eigentlich Hide()e ich da gar nichts von Hand.
  Mit Zitat antworten Zitat
Der schöne Günther
Online

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

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 09:41
Immerhin ist im Debugger "self" noch belegt: "StatusForm". Also echt nichts spannendes im OnDestroy dieser Form?

Auf jeden Fall FastMM einmal einbauen. Der überschreibt bei Freigaben alles direkt mit Nullen und merkt bei virtuellen Methoden (wie z.B. dem Destruktor) auch direkt wenn die Instanz (das Formular) bereits freigegeben ist.
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 09:51
Also echt nichts spannendes im OnDestroy dieser Form?
Die AV kam sowohl, wenn ich im FormDestroy eine Hand voll Objekte Free()e, als auch mit komplett leerem FormDestroy.

Ich hatte allerdings noch nicht das Vergnuegen, die AV mit eingeschaltetem FastMM4 zu kriegen.
Dieses event steht wohl noch aus und wuerde vielleicht einen Hinweis geben.
  Mit Zitat antworten Zitat
Der schöne Günther
Online

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

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 09:52
Ich hätte ja eher gedacht dass dieses Formular irgendwo manuell freigegeben wird, und das dann einmal zu einem Zeitpunkt wo es schon "von selbst" weg ist.
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 09:56
Ich hätte ja eher gedacht dass dieses Formular irgendwo manuell freigegeben wird, und das dann einmal zu einem Zeitpunkt wo es schon "von selbst" weg ist.
Das habe ich beim Sichten der AV auch immer gedacht; es gibt nur keine Stelle, an der ich meine MainForm einfach mal so manuell befreie...
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 10:11
Muss es denn eine Form sein, kann es nicht ein Frame sein, der schon weg, ist, wo du doch wie du sagt viel mir Frames arbeitest.
Ralph
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 10:11
Hallo,
Zitat:
Beim Click des Haupt-Schliessen-Buttons fuehre ich "Application.Terminate;" aus.
Warum?

Close sollte doch reichen, oder ?

Machst in den Frames irgendwas mit Mainform umsetzen?
Heiko
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#10

AW: AV bei VCL.Forms.DoneApplication

  Alt 25. Aug 2017, 10:33
Close sollte doch reichen, oder ?

Machst in den Frames irgendwas mit Mainform umsetzen?
Ok, ist in Close; geaendert. Ich hatte keinen expliziten Grund, App.Terminate zu verwenden.
Wenn du mit 'umsetzen' meinst, dass sich irgendeine Aktion aus FrameCode auf die MainForm auswirkt, dann ja. Jede Menge.

Wenn Du mit 'umsetzen' einen Fenster-MOVE meinst, dann nein.

Um zirkulaere Referenzen dieser Art zu verhindern, habe ich diesen Workaround verwendet:
DP: zirkulaere-referenzen-aber-warum-nicht-so

Aber wenn ich mich recht erinnere, hatte ich meine AV sowohl vor als auch nach dieser Problembehandlung.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 10:01 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