AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sporadische Zugriffsverletzungen

Ein Thema von Hobbycoder · begonnen am 25. Jun 2018 · letzter Beitrag vom 27. Jun 2018
Antwort Antwort
Hobbycoder

Registriert seit: 22. Feb 2017
998 Beiträge
 
#1

Sporadische Zugriffsverletzungen

  Alt 25. Jun 2018, 09:28
Hi,

ich brüte schon das ganze WE über einen Fehler, wo ich augenscheinlich sporadisch Zugriffsverletzungen bekomme. Das debuggen mit MadExcept führte bisher zu keinem Ergebnis, da mir dort Code-Zeilennummern ausgegeben werden, die gar nicht existieren.

Zu dem Programm: Ich möchte mir ein kleinen Inventarisierungsprogramm schreiben. Alles soll in einem Virtualstringtree dargestellt werden. Ich habe das ganze über Klassen aufgebaut, z. TServer, TPrinter, TPasswort, usw. welche selbst jeweils in einer TObjectList gehalten werden.
Da ich alle Klassen dann aber in einer VST darstellen möchte, habe ich mir eine HelperKlasse geschrieben, welche jeweils den Klassennamen und den Objektzeiger enthält. Darüber baue ich dann die VST auf. (Sicherlich hat dieses Konzept möglicherweise Schwächen, aber die möchte ich hier jetzt nicht diskutieren. Vielleicht nach dem ich den Fehler gefunden habe).

Mein Problem ist jetzt, dass manchmal beim Neuaufbau der VST, manchmal beim Laden der Daten und manchmal beim Beenden der Application eine Zugriffsverletzung auftritt, und das ohne Veränderung der Daten, deren Ursprung ich nicht ermitteln kann. Vielleicht mag einer sich das mal anschauen und mir auf die Spur bringen. Danke

Anbei der Source und die Beispieldaten.
Angehängte Dateien
Dateityp: zip Beispieldaten.zip (566 Bytes, 5x aufgerufen)
Dateityp: zip code.zip (25,8 KB, 5x aufgerufen)
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Sporadische Zugriffsverletzungen

  Alt 25. Jun 2018, 10:35
Wenn du das Testprojekt ohne die spezielle Komponente TBadgeBtn hochladen kannst, so das es sozusagen out-of-the-box zu kompilieren ist, kann man dir bestimmt weiterhelfen.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
998 Beiträge
 
#3

AW: Sporadische Zugriffsverletzungen

  Alt 25. Jun 2018, 10:49
Oh, ja sorry. Hier das Projekt mit Standardbuttons. Jedi's und VST hab ich drin gelassen. Jedi's werden wohl die meisten haben. Und ohne VST macht's keinen Sinn.
Angehängte Dateien
Dateityp: zip Code_StandardButton.zip (24,0 KB, 8x aufgerufen)
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Sporadische Zugriffsverletzungen

  Alt 25. Jun 2018, 11:05
Auch wenn da ganz viel im Argen ist, konzentrieren wir uns mal auf das Wesentliche.

Schließe das Speicherleck in TfrmMain.NeuKunde .
Du erzeugst k:=TKunde.Create; , gibst aber nur frei, wenn der Kunde schon existiert.
Es würde wohl reichen, wenn du am Schluss einfach Kunden.Add(K) aufrufen würdest.
Dann kannst du dir das Kunden.LoadFromDirector(DataBaseDir); auch sparen.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
998 Beiträge
 
#5

AW: Sporadische Zugriffsverletzungen

  Alt 25. Jun 2018, 19:40
Okay, da habe ich vergessen, k wieder freizugeben, oder aber eben Tkunden.Add(k) und mir das Load sparen.
Gibt sicherlich auch bessere Varianten, das zu lösen. Wo nun aber ganz viel im Argen ist, kann ich so nicht nachvollziehen.

Leider hat das auch nichts mit dem Problem zu tun, da die Zugriffsverletzung auch ohne hinzufügen eines neuen Kunden kommt. Aber halt eben nicht immer.
Mein Fehler muss irgendwo zwischen dem Erzeugen der Nodes und dem GetText liegen, denn wenn ich beide Proceduren durchsteppe kommt der Fehler nach BuildList und vor GetText.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.777 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Sporadische Zugriffsverletzungen

  Alt 26. Jun 2018, 10:01
.. auch wenn ich mich jetzt unbeliebt mache..
Wo sind die Unit-Tests?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.848 Beiträge
 
Delphi 12 Athens
 
#7

AW: Sporadische Zugriffsverletzungen

  Alt 26. Jun 2018, 10:43
Mein Fehler muss irgendwo zwischen dem Erzeugen der Nodes und dem GetText liegen, denn wenn ich beide Proceduren durchsteppe kommt der Fehler nach BuildList und vor GetText.
Wie sieht denn der Stacktrace an der Stelle aus?
Sebastian Jänicke
AppCentral
  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 00:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz