AGB  ·  Datenschutz  ·  Impressum  







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

Zugriffsverletzung

Ein Thema von schand99 · begonnen am 25. Jul 2016 · letzter Beitrag vom 27. Jul 2016
Antwort Antwort
Seite 3 von 3     123   
schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#21

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 08:05
Rätsel gelöst, ich hatte immer die DLL in Verdacht, da Anfangs in einer Funktion am End; der Fehler ausgelöst wurde. Durch Umbau von mehreren Berechnungsfunktionen welche Berechnungen aus der DLL benötigten, habe ich dann entdeckt, dass die Freigabe von dynamischen Array's am Ende einer Funktion die Ursache für die Schutzverletzung war. Diese Freigabe erfolgt normalerweise automatisch am End; durch manuelles SetLenght(Variable, 0) konnte ich das Problem genauer einkreisen. Zwei dynamische Array's waren noch ok, ab dem dritten gibt es die Schutzverletzung. Ich verstehe zwar nicht warum das so ist, habe zur Zeit aber nicht die Geduld dem auf den Grund zu gehen. Umstellen auf statische Array's war die Lösung.

Tut mir leid dass einige von Euch über meine (falsche) Vermutung zur Fehlerquelle gegrübelt haben,

Gruß
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#22

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 08:09
Bin mir ziemlich sicher, dass es nicht an der Tatsache lag dass du dynamische Arrays benutzt hast.
Garantiert hast du irgendwo über die Grenzen einer deiner dyn. Arrays geschrieben (oder unter die Grenzen).

Dass es mit statischen Arrays geht ist vielleicht nur Zufall oder du hast "aus Versehen" eine Größe gewählt die deinen Fehler "verschwinden" lässt.
(Das heißt nicht, dass er weg ist!)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#23

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 10:14
Bin mir ziemlich sicher, dass es nicht an der Tatsache lag dass du dynamische Arrays benutzt hast.
Garantiert hast du irgendwo über die Grenzen einer deiner dyn. Arrays geschrieben (oder unter die Grenzen).

Dass es mit statischen Arrays geht ist vielleicht nur Zufall oder du hast "aus Versehen" eine Größe gewählt die deinen Fehler "verschwinden" lässt.
(Das heißt nicht, dass er weg ist!)
Das ist aber sehr diplomatisch.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#24

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 12:05
Sehr diplomatisch?

Die Situation ist etwas verzwickt. Ich habe einen etwas älteren Quellcode einer VB6 Anwendung und muss den "übersetzen". VB6 ist sehr fehlertolerant, das ist nicht unbedingt hilfreich.
Eine Serie von 11(!!) dynamischen Array's wird verwendet um thermo- und physikalische Eigenschaften eines Kältemittels zu berechnen

also
Delphi-Quellcode:
Var
 Variable1, Variable2, Variable3, Variable4, Variable5: Array of Double;

Begin
...
...
  SetLength(Variable1, X)
  SetLength(Variable2, X)
  ...
  ...
  ' ein paar Schleifen...

SetLength(Variable1, 0)
SetLength(Variable2, 0)
SetLength(Variable3, 0)

End;
die Variable X ist immer kleiner gleich 20, das ist nicht groß. Es wäre allerdings möglich, dass irgend ein Wert eines Array's nicht gesetzt wird (fällt mir jetzt ein, das kann ich ggf. ausprobieren)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#25

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 12:13
Die Schleifen wo die Arrays gefüllt werden, wären wichtiger
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#26

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 16:29
Jetzt hab ich mir mal einen kleinen Spaß gemacht:

Delphi-Quellcode:
Function WasSolldas(Irgendwas: String): Double;
  Var
  J, M: Integer;
  BogNr, xBog, xTube, beta, Hbeta, eps, Heps, MDich, ZetaBogKM, DPBog, DpDlzphM: array of Double;
begin
   M := 8;
   SetLength(BogNr, M);
   SetLength(xBog, M);
   SetLength(xTube, M);
   SetLength(beta, M);
   SetLength(Hbeta, M);
   SetLength(eps, M);
   SetLength(Heps, M);
   SetLength(MDich, M);
   SetLength(ZetaBogKM, M);
   SetLength(DPBog, M);
   SetLength(DpDlzphM, M);

   for J := 0 to M do
      begin
         BogNr[J] := 0;
         xBog[J] := 0;
         xTube[J] := 0;
         beta[J] := 0;
         Hbeta[J] := 0;
         eps[J] := 0;
         Heps[J] := 0;
         MDich[J] := 0;
         ZetaBogKM[J] := 0;
         DpBog[J] := 0;
         DpDlzphM[J] := 0;
      end;

   SetLength(BogNr, 0);
   SetLength(xBog, 0);
   SetLength(xTube, 0);
   SetLength(beta, 0);
   SetLength(Hbeta, 0);
   SetLength(eps, 0);
   SetLength(Heps, 0);
   SetLength(MDich, 0);
   SetLength(ZetaBogKM, 0);
   SetLength(DPBog, 0);
   SetLength(DpDlzphM, 0);
   Result := 0;
End;
Resultat: das Programm steigt bei SetLenght(xBog, 0); mit Schutzverletzung aus.

Delphi 10.1 Berlin

Was mach ich da falsch?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#27

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 16:30
Jupp, genau das.
Ein M-Langes Array hat Indices von 0 bis M-1.
Das hast du bei deiner for-Schleife nicht beachtet, deswegen schreibst du in unreservierten Speicher und das kracht früher oder später.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#28

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 17:56
Oh Mann, du hast recht. Wie peinlich.
Den Thread bitte schließen.
Oder Löschen, das wär für mich noch besser
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#29

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 18:01
Jupp, genau das.
Ein M-Langes Array hat Indices von 0 bis M-1.
Das hast du bei deiner for-Schleife nicht beachtet, deswegen schreibst du in unreservierten Speicher und das kracht früher oder später.

Oh Mann, du hast recht. Wie peinlich.
Den Thread bitte schließen.
Oder Löschen, das wär für mich noch besser
Du bist nicht der Erste und wahrscheinlich auch nicht der letzte dem das passiert,
darum wäre es schön blöd den Thread zu löschen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#30

AW: Zugriffsverletzung

  Alt 27. Jul 2016, 23:02
Oh Mann, du hast recht. Wie peinlich.
Den Thread bitte schließen.
Oder Löschen, das wär für mich noch besser
Ich hab schon viel peinlichere Threads aufgemacht, die mittlerweile hoffentlich gelöscht (Klatsch&Tratsch) oder vergessen sind Mach dir nichts draus
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 23:53 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