Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

1

06.06.2009, 14:35

Und wieder mal Memory Corruption... [solved]

Habe wieder einmal ein Problem mit Memory Corruption. Habe auf dem Heap ein paar Objekte, die über eine Integer-Membervariable verfügen. Diese haben zum Zeitpunkt A korrekte Werte. Anschließend rufe ich ein new auf einem sf::SoundBuffer auf. Danach, zum Zeitpunkt B, sind die eben besagten Membervariablen überschrieben mit unsinnigen Werten. Gut, das bedeutet also, wieder mal den ganzen Code abgrasen nach Dangling-Pointer-Delete und Buffer-Overruns. Aber das merkwürdige ist: Wenn ich das Programm mit Valgrind ausführe, tritt dieser Fehler nicht auf! Wie lässt sich das denn nun erklären? Gibt das eventuell auch einen Hinweis auf die Fehlerursache?

Danke im Voraus!
<< an dieser Stelle ist eine Signatur verstorben >>

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

06.06.2009, 14:48

Das ist ja das schöne an undefined behaviour.. ;)

Kennst du vld?
http://www.codeproject.com/KB/applications/visualleakdetector.aspx

Vielleicht kannst du den Fehler da besser reproduzieren.

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

3

06.06.2009, 16:36

Ist wohl leider ein Visual Studio Plugin... ich bin aber auf Linux :)
<< an dieser Stelle ist eine Signatur verstorben >>

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

06.06.2009, 16:41

Hehe. Schade.
Naja. Dann wirst du wohl um Mühsames Debuggen nicht drum herum kommen.

Tritt denn der Fehler im normalen Modus konstant auf?

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

5

06.06.2009, 20:38

Jop, ganz einfach reproduzierbar
<< an dieser Stelle ist eine Signatur verstorben >>

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

06.06.2009, 20:54

Dann weisst du ja, was du diesen Sonntag zu tun hast. ;)

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

7

06.06.2009, 21:14

Vermutlich, leider :D
<< an dieser Stelle ist eine Signatur verstorben >>

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

8

07.06.2009, 11:35

nichts mühsam debuggen da... Valgrind!!

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

9

07.06.2009, 12:28

Zitat von »"Beneroth"«

nichts mühsam debuggen da... Valgrind!!

Zitat von »"the[V«

oid"][...] Aber das merkwürdige ist: Wenn ich das Programm mit Valgrind ausführe, tritt dieser Fehler nicht auf! Wie lässt sich das denn nun erklären? Gibt das eventuell auch einen Hinweis auf die Fehlerursache? [...]
<< an dieser Stelle ist eine Signatur verstorben >>

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

07.06.2009, 12:48

Zitat von »"Beneroth"«

nichts mühsam debuggen da... Valgrind!!


^^
Das ist ja das Problem. ;) - Darum habe ich vld vorgeschlagen.. Für VC ein super Tool.

Werbeanzeige