AGB  ·  Datenschutz  ·  Impressum  







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

Exception EAccessViolation

Ein Thema von Cruentus · begonnen am 18. Jan 2013 · letzter Beitrag vom 18. Jan 2013
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Exception EAccessViolation

  Alt 18. Jan 2013, 14:09
Adressen unter... öhm, war das 400h oder 800h(?) sind nil. Du greifst dort also auf eine Referenz zu, der keine Instanz zugewiesen wurde. Mehr lässt sich ohne etwas Code aber auch nicht sagen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Cruentus

Registriert seit: 22. Apr 2009
32 Beiträge
 
#2

AW: Exception EAccessViolation

  Alt 18. Jan 2013, 14:22
Hmm, Zugriff auf einen Nullpointer. Okay. Aber eigentlich kommt der Fehler ja erst im laufenden Spielbetrieb, da sollte es ja eigentlich keine nicht initialisierten Variablen geben (dann müsste er ja auch reproduzierbar sein). Und der Fehlzugriff müsste sich doch auch irgendwie bemerkbar machen (falsch gesetzte Figuren, falsche Spielergebnisse, Spiele nicht erneut aufrufen können, etc.). Aber ich kann ja nochmal nachschauen.

Ich würde gerne Quelltext posten, allerdings hat die zentrale Klasse über 3000 Zeilen, da kämen dann noch die Spielcodezeilen hinzu. Und da ich beim "Anhalten" nicht angezeigt bekomme, wo der Fehler auftritt... Ich habe auch schon überlegt, im Einzelschrittmodus durchzugehen. Aber da ich im normalen Spielbetrieb ca. 15 Minuten gebraucht habe, bis der Fehler das erste Mal auftrat, wäre ich damit ja noch im nächsten Leben beschäftigt (zudem laufen bei manchen Spielen noch parallel Timer mit).

Auch wenn das jetzt vielleicht total grottiger Programmierstil wäre, aber gibt es vielleicht eine Möglichkeit die Compiler- und Windowsexceptionmeldung zu unterdrücken? Immerhin konnte ich immer ohne Einschränkungen weiterspielen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.669 Beiträge
 
Delphi 12 Athens
 
#3

AW: Exception EAccessViolation

  Alt 18. Jan 2013, 14:27
Die Möglichkeit zum Unterdrücken gibt es zwar, aber davon möchte ich ausdrücklich abraten. Mach Dir lieber die Mühe und untersuche, wo die Fehler herkommen. Anschließend beseitigst Du die Ursache und hast gar keine Notwendigkeit mehr, irgendetwas unter den Teppich kehren zu müssen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#4

AW: Exception EAccessViolation

  Alt 18. Jan 2013, 14:30
Zitat:
Und da ich beim "Anhalten" nicht angezeigt bekomme, wo der Fehler auftritt...
Ich weiß nicht wie das bei anderen Delphi-Versionen ist, aber bei mir gibt's die Debugger-Option "Bei Delphi Exceptions stoppen". Damit sollte man schon sehen wo der Fehler auftritt.
Sebastian
  Mit Zitat antworten Zitat
Cruentus

Registriert seit: 22. Apr 2009
32 Beiträge
 
#5

AW: Exception EAccessViolation

  Alt 18. Jan 2013, 17:56
Ich benutze den Turbodelphi-Explorer. Sonst hat der mir bei den Exceptions auch immer die entsprechende Zeile rot markiert, nur diesesmal nicht.

Ich habe den Quelltext mal überflogen und verstärkt auf Möglichkeiten einer Null-Pointer-Exception geachtet. Ich habe jetzt eine TStringList im Verdacht, die ich nicht immer initialisiert aber nach jedem Spiel immer wieder mit .free; freigegeben habe. Da könnte doch der Knackpunkt sein, oder?

Ich habe das jetzt geändert und werde das morgen mal ausgiebig testen, ob die Exception irgendwann wieder auftritt oder nicht. Gibt mir dann zwar keine Gewissheit, ist aber besser als gar nichts^^

Danke schonmal
Gruß
Cruentus

Edit: So, ich habe das Spiel heute mal einige Stunden laufen lassen, der Fehler ist nicht wieder aufgetreten. Das ist zwar keine Garantie, aber scheinbar lag es an der .free Geschichte. Somit ist das Problem gelöst. Danke für eure Hilfe, sie hat mir den entscheidenden Hinweis gegeben!

Geändert von Cruentus (19. Jan 2013 um 16:15 Uhr) Grund: neue Erkenntnisse
  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 21:22 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