Kompletter Systemabsturz nach Game start
-
Hallo Leute,
ich programmiere gerade mit C++ und openframeworks ein Worms ähnliches Spiel.
Dazu habe ich mir einen MapGenerator programmiert der eigentlich auch recht gut funktioniert hat.
Jetzt habe ich den funktionierenden MapGenerator in meiner GameManager Klasse benutzt um damit die Map zu generieren.
MapGenerator* map = new MapGenerator(3000); Map = map->getMap(); Background = map->getBackground(); delete map;
Leider stürzt er mir spätestens beim zweiten start komplett ab. Das geht sogar soweit dass gnome neu startet oder der gesamte PC neu gestartet werden muss. (hängt davon ab ob ich auf ein anderes tty komme oder nicht)
Bin mit sowas nicht wirklich sehr erfahren, und wäre daher froh wenn mir jemand sagen könnte wie ich da weiter machen könnte.
thx und lg
Darian
-
Schon im Debugger geguckt?
-
Wenn ich raten müsste, würde ich sagen, daß getMap() und getBackground() Membervariablen des MapGenerators herausgeben - da ist das delete am Ende tödlich (will heißen, du arbeitest mit Speicherbereichen die vom System anders verplant werden könnten).
-
Hallo Leute,
jap Debugger wurde natürlich schon ausprobiert. Aber da komme ich auf nichts brauchbares, und selbst dann muss ich des Öfteren Gnome neustarten.
getMap() und getBackground() geben ja eine Kopie zurück, darum wird neuer Speicher alloziert. Wenn der alte dann weg ist, sollte das doch kein Problem sein? Oder sehe ich das jetzt falsch?
Bin gerade dabei Debug-Code einzubauen, und vielleicht komme ich dann auf bessere Ideen.
Denke es liegt irgendwie an meinem ImageManager...
Für weitere herangehensweisen wäre ich natürlich sehr dankbar.
thx und lg
Darian
-
Darian schrieb:
getMap() und getBackground() geben ja eine Kopie zurück, darum wird neuer Speicher alloziert. Wenn der alte dann weg ist, sollte das doch kein Problem sein? Oder sehe ich das jetzt falsch?
Das kann ich jetzt nicht beurteilen, ohne deinen Code zu sehen. Geben die Funktionen Zeiger zurück oder Objekte? Wenn letzteres, haben die auch einen funktionsfähigen Zuweisungs-Oerator?
-
Ich würde auf Hardware-Probleme tippen.
Entweder RAM defekt -> Ram Test laufen lassen.
CPU übertaktet ?Ich persönlich hatte bei mir mal folgendes Erlebnis.
AMD Dual Core übertaktet bis zum geht nicht mehr. Durch das bekannte TLB-Problem von AMD hat der Prozessor leider die Cache-Kohärenz verloren.
Das System läuft wunderbar stabil, außer wenn man beide Kerne unter Vollast setzt.Das Problem hab ich zuerst auf mein C++-Programm geschoben, bis ich zum Test mal runtergetaktet habe.
Lange Rede, kurzer Sinn -> Hardware/Treiber-Problem