AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TList.Count führt zu SIGSEGV Fehler

Ein Thema von Noobmaster · begonnen am 13. Mai 2012 · letzter Beitrag vom 14. Mai 2012
Antwort Antwort
Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#1

Präzisierung des Problems

  Alt 13. Mai 2012, 17:24
Also genau genommen bin ich mir nicht 100% sicher, ob der Fehler an dieser Stelle liegt, aber da diese Zeile die einzige ist, in der ich die Count-Funktion der Liste benutze, gehe ich davon aus. Wenn ich das Programm in Einzelschritten durchlaufen lasse, komme ich nicht zu dem Fehler (die Funktion wird in einer Schleife aufgerufen, die sich so oft wiederholt, dass ich sie nicht komplett in Einzelschritten durchlaufen lassen kann).
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Präzisierung des Problems

  Alt 13. Mai 2012, 18:10
die Funktion wird in einer Schleife aufgerufen, die sich so oft wiederholt, dass ich sie nicht komplett in Einzelschritten durchlaufen lassen kann).
Zuerst einen Haltepunkt setzen, in den Eigenschaften des Haltepunkts anhalten deaktivieren und bei Auswerten die Schleifenvariable eintragen. Dann schauen wann die Exception auftritt.
Wieder einen Haltepunkt setzen, diesmal mit anhalten, aber mit der Bedingung auf diesen Durchlauf (wenn es denn immer der selbe ist, also z.B. i = 133). Dann landest du genau dann dort, wenn es knallt.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.771 Beiträge
 
Delphi 12 Athens
 
#3

AW: TList.Count führt zu SIGSEGV Fehler

  Alt 13. Mai 2012, 19:31
Ist Range-Checking eingeschaltet?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#4

AW: TList.Count führt zu SIGSEGV Fehler

  Alt 14. Mai 2012, 09:47
Ist Range-Checking eingeschaltet?
Was ist das?

Also ich habe jetzt die Werte gefunden, wann AnzWoerterInListe := pWortquelle.mWurzel[Wortlaenge].mWoerter[IndexBuchstabe].Count; zu dem Fehler führt.
IndexBuchstabe muss, damit der Fehler auftritt, < 1 und > 26 sein.

Delphi-Quellcode:
               if IndexBuchstabe <= 0 then
               begin
                  x := x;
               end;
               if IndexBuchstabe > 26 then
               begin
                  y := y;
               end;
               AnzWoerterInListe := pWortquelle.mWurzel[Wortlaenge].mWoerter[IndexBuchstabe].Count;
Mit den if-Abfragen habe ich herausgefunden, dass dies aber nie der Fall ist.
  Mit Zitat antworten Zitat
Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#5

Lösung

  Alt 14. Mai 2012, 09:57
Der Fehler war, dass Wortlaenge = 0 war.
Danke für die Hilfe!
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 11:54 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