EAccessViolation nur manchmal
-
PeterAcht schrieb:
Setze doch einfach mal einen Breakpoint in den Destruktor deines Objektes und schau wann es freigegeben wird.
Gute Idee!
Reicht ein ShowMessage("test") ausWas hast du gegen einen Breakpoint?
-
PeterAcht schrieb:
Mit dem Owner, den TLabel benötigt, hat das aber nix zu tun.
Dann würde ich die Funktion hasOwner() aber umbenennen. Das stiftet sonst Verwirrung.
-
Mich stört der Name nicht
Also ich habe jetzt einen Breakpoint im Destruktor gesetzt.
Aber der wird nie erreicht. hasOwner verursacht den Fehler wahrscheinlich vorher schon.Was könnte ich jetzt tun?
-
Hallo
Dein Quellcode und deine Beschreibung reichen für uns überhaupt nicht aus, um diesen Fehler genau benennen zu können. Zum Beispiel die Frage, ob hasOwner() überhaupt für eine gültige Instanz von Ground aufgerufen wird, ist für uns nicht überprüfbar. Und um genau solche Fragen zu klären gibt es den Debugger. Also setzt ihn ein.
bis bald
akari
-
PeterAcht schrieb:
Was könnte ich jetzt tun?
Das Übliche: Call-Stack analysieren, Breakpoints so setzen, daß du in die AV hineinsteppen kannst.
-
Ob ihrs glaubt oder nicht. Ich hab den Fehler jetzt mit etlichen ShowMessages() eingegrenzt. Mit dem Debugger kenn ich mich einfach zu wenig aus.
Und das Problem war folgendes:
Ich habe eine Methode, die einen Pointer auf ein Objekt der "Problemklasse" übergeben bekommt. Dieser Pointer kann aber auch NULL sein. Und genau dann, wenn er NULL war, kam es zu diesem Problem.
Jetzt muss ich nur noch eine Lösung finden.
Peter
-
PeterAcht schrieb:
Mit dem Debugger kenn ich mich einfach zu wenig aus.
Das solltest du dringend ändern. Ohne Debugger ist die Fehlersuche meist so Aufwendig wie die Suche nach der Nadel im Heuhaufen...
-
Ja, das hab ich gemerkt.
Ich arbeite mich mal ein wenig ein.
-
Das hier könnte helfen
http://www.junix.ch/bcb/help/debug.html
-
Danke für den Link!
Ich schau mir das mal an, wenn ich wieder Debuggen muss (also jetzt)