Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zugriffsverletzung nach Modulus (https://www.delphipraxis.net/150562-zugriffsverletzung-nach-modulus.html)

Medium 21. Apr 2010 18:08

Re: Zugriffsverletzung nach Modulus
 
An der schieren Berechnung kann es halt einfach nicht liegen, und somit kann die eigentliche Ursache nicht in dem bisher spärlich von dir gezeigten Code liegen. Sobald du dich mal nach mehr als nem 3-Zeiler fühlst, kann man dir evtl. auch einen Meter weiter helfen. Rechnen an und für sich wird NIE eine AV auslösen, d.h. der Fehler an und für sich ist wo anders zu suchen. Wurde aber glaub ich gelegentlich schon drauf hingewiesen ;)

himitsu 21. Apr 2010 18:40

Re: Zugriffsverletzung nach Modulus
 
Um das nochmals zu sagen: Eine mathematische Berechnung kann keine Zugriffsverletzung erzeugen.
Magimal ein Integerüberlauf, DivisionDurchNull und was es sonst noch an derartigen Fehlern gibt, aber definitiv wird niemals eine Zugriffsverletzung autftreten. :!:

Eine Zugriffsverletzung tritt auf, wenn man auf etwas zugreifen will, was es nicht gibt oder wo der Zugriff verweigert wird.

Außerdem ist es egal wo der Debugger nach der Exception steht. (immerhin steht er da nach der Fehlerstelle, da der fehlerverursachende Code schon ausgeführt wurde)

Hier gibt es also etwas, was irgendwie ständig viele vergessen.
Debuggen

Also den betreffenden Code Befehl für Befehl durchgehn, schauen welche Werte z.B. die Variablen haben und vergleichen welche Werte sie haben sollten.
Und außerdem bekommt man so genau mit, welcher Befehl den Fehler auslöst.

RebellX 21. Apr 2010 21:41

Re: Zugriffsverletzung nach Modulus
 
So, nachdem ich jetzt mal nen wenig Zeit hatte hab ich das Problem lösen können:

ich hatte an einer Stelle setlength(dynarray, 0) verwendet. Ich weiß zwar nicht, warum das so nicht funktioniert hat, aber mit dynarray := nil klappts nun.

Vielen Dank für die Hilfe

RebellX

sirius 22. Apr 2010 08:00

Re: Zugriffsverletzung nach Modulus
 
Du hast aber nicht die Ursache des Fehler gefunden, und dieser ist immer noch da. Du hast nur ein Symptom bekämpft und hoffst, dass jetzt kein zweites auftritt.
setlength(dynarray,0) und dynarray:=nil landet letztendlich beides bei der internen Funktion DynArrayClear. Macht also keinen Unterschied.

Du hast irgendwo in deinem Code einen Fehler, der dir an einer mehr oder weniger zufälligen Stelle eine Speicheradresse, ein Regsiter o.ä. durcheinanderbringt. Solange du diese Speicheradresse nicht benötigst geht alles gut. Surche also die Ursache!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Seite 2 von 2     12   

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