AGB  ·  Datenschutz  ·  Impressum  







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

BPL Zugriffsverletzung

Ein Thema von haentschman · begonnen am 20. Jul 2014 · letzter Beitrag vom 20. Jul 2014
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#1

AW: BPL Zugriffsverletzung

  Alt 20. Jul 2014, 19:47
Zitat:
dann kannst du auch gleich konsistent bleiben und ein Objekt zurückgeben
...sind viele verschiedene Objekte da der Parser sich in der Funktion unterscheiden kann (Text unterschiedlich) Deshalb das Interface. Der Thread arbeitet mit dem Interface. Da ist es wurscht ob Tbla oder TBlubb hinten dran hängt.

Meinst du wenn ich statt der Objektliste eine Interface Liste übergebe und die (zu ergänzenden) Interfaces der im Parser erzeugten Objekte hineinlege habe ich weniger Probleme?
Zitat:
Hast du vielleicht einmal einen Stacktrace von einem solchen Fehler
...nicht als Bild. Die letzte Zeile vor einer der Zugriffsverletzungen war:
Delphi-Quellcode:
procedure TXWebBaseParser.ParseAlarm(const aText: PChar; AlarmList: TAlarmList);
var
  aAlarm: TAlarm;
  I, PositionFirst, PositionCount, TempPosition: Integer;
  sl: TStringList;
begin
  AlarmList.Clear; //<- hier. Klingt als wäre die Objektliste nicht existent. Diese wird aber beim Erzeugen des Threads erzeugt und im Destroy freigegeben.
  sl := TStringList.Create;
.
.
...deshalb vermute ich die Fehler in der Speicherverwaltung weil ich mit den Objekten nicht richtig umgehe. Mich interessiert halt wie es richtig geht. Deine Variante, grundsätzlich alles mit Interfaces, werde ich mal ausprobieren. Leider erst nächstes Wochenende.

Danke...

Geändert von haentschman (20. Jul 2014 um 19:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: BPL Zugriffsverletzung

  Alt 20. Jul 2014, 20:15
Klingt als wäre die Objektliste nicht existent. Diese wird aber beim Erzeugen des Threads erzeugt und im Destroy freigegeben.
FreeOnTerminate nutzt du aber hoffentlich nicht, oder? Denn dann dürftest du auf das Threadobjekt nicht von außen zugreifen.

Das würde das aber direkt erklären.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#3

AW: BPL Zugriffsverletzung

  Alt 20. Jul 2014, 20:37
Der Thread hält die Instanzen der Objektlisten und übergibt sie dem Parser ParseAlarm(const aText: PChar; AlarmList: TAlarmList) Die kann nicht nil sein.
Wenn ich die Klasse direkt instanziere ist ja Alles in Ordnung. Deswegen tippe ich auf ein falsches Abbiegen im Speicher.

Nachtrag: FreeOnTerminate benutze ich nicht.

Geändert von haentschman (20. Jul 2014 um 21:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: BPL Zugriffsverletzung

  Alt 20. Jul 2014, 22:34
Dann bleibt noch FastMM versuchen und eben Haltepunkte mit der Bedingung, dass die Variable nil ist.
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 17:13 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-2025 by Thomas Breitkreuz