AGB  ·  Datenschutz  ·  Impressum  







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

Stack-Überlauf bei IndexOf

Ein Thema von Timelesk · begonnen am 17. Mär 2005 · letzter Beitrag vom 18. Mär 2005
Antwort Antwort
Timelesk

Registriert seit: 24. Jul 2004
72 Beiträge
 
#1

Stack-Überlauf bei IndexOf

  Alt 17. Mär 2005, 16:31
Moin,

ich habe folgendes Phänomen beobachtet:
Wenn ich ca. 20-50 Vokabeln abfragen lasse, funktioniert alles Fehlerfrei!

Aber so ab 50 Vokabeln aufwärts haut er mir einen Stack-Überlauf rein ODER die Fehlermeldung "Exception in der Klasse EAccessViolation aufgetreten. Zugriffsverletzung..."

Der Code, wo dieser Fehler auftritt:
Delphi-Quellcode:
    for i:=0 to abfrage.vokabeln.Items.Count-1 do begin
      abzufragende_voks[i] := main.voks.Items.IndexOf(abfrage.vokabeln.Items[i]);
    end;
Es liegt 100%ig an diesen Zeilen! Hab es mit Showmessage lokalisiert!

Wie kann ich das Problem beheben?
Wisst ihr weiter?

Vielen Dank
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: Stack-Überlauf bei IndexOf

  Alt 17. Mär 2005, 16:40
also, bei diesem programmausschnitt kann dir sicher niemand helfen.

vielleicht das array abzufragende_voks vergrößern?
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Stack-Überlauf bei IndexOf

  Alt 17. Mär 2005, 16:43
Zitat von Timelesk:
Aber so ab 50 Vokabeln aufwärts haut er mir einen Stack-Überlauf rein
Ist das Array lokal deklariert? Dann liegt es nämlich idR auf dem Stack (wenns statisch ist imho). Als Klassenmember sollte das klappen.

Zitat von Timelesk:
ODER die Fehlermeldung "Exception in der Klasse EAccessViolation aufgetreten. Zugriffsverletzung..."
Das deutet auf ein zu kleines Array hin.


Dein Code ist aber tatsächlich arg knapp gehalten


Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Stack-Überlauf bei IndexOf

  Alt 17. Mär 2005, 16:45
Moin,

Zitat:
Es liegt 100%ig an diesen Zeilen! Hab es mit Showmessage lokalisiert!
Warum nicht mit breakPoints, oder normales debugging, dann sollte man auch sehen, warum er evtl. im kreis läuft.

Und zeig mal bitte die deklarationen, denn so sieht der code recht unverdächtig aus...aber wer weiss?
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: Stack-Überlauf bei IndexOf

  Alt 17. Mär 2005, 16:46
100%ig ein zu kleines Array!
Zitat von Timelesk:
Es liegt 100%ig an diesen Zeilen! Hab es mit Showmessage lokalisiert!
[OT]Nebenbei empfehle ich dir die Lektüre des Debugging-Tutorials... Das macht die Fehlersuche etwas leichter![/OT]
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Timelesk

Registriert seit: 24. Jul 2004
72 Beiträge
 
#6

Re: Stack-Überlauf bei IndexOf

  Alt 17. Mär 2005, 19:27
Hallo,

wie ihr alle über meinen Beitrag hergefallen seit... *g*
Echt cool
---------------------
Ihr hattet recht: Es lag an einem zu kleinen Array: SetLength(Array,41);

Ansonsten: Per F9 startet er und bei nem Fehler springt er ja normalerweise an die Fehlerstelle: Das war in diesem Falle leider nicht so! Er hat mir die Zugriffsverletzung ausgegeben und dann nen Fenster mit irgendwas über die CPU oder Ressourcen?

Naja, wegen Debugging werd ich mich mal schlau machen

Vielen Dank für die schnelle Hilfe...
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Stack-Überlauf bei IndexOf

  Alt 18. Mär 2005, 08:29
also,

ich bin auch der meinung, dass das debugging mit ShowMessage der schlechteste weg ist.
man muss erst die messages einbauen, weiss dann nicht mehr wo welche message erscheinen soll, muss ständig die lästigen fenster wegklicken und am schluss muss man die messages wieder aus dem code löschen.

mit breakpoints und stepping ist man viel flexibler und kann viel schneller fehler finden.
ausserdem hat man ständig den code vor augen und es fallen noch andere schwachstellen auf.

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  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 06:20 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