Hallo Welt
Ich bin auf eines dieser merkwürdigen Probleme gestossen, die erst auftreten, wenn man das Programm ohne angehängten Debugger ausführt: Dann nämlich haut mir die Visual C++ 2013 Runtime den Fehler R6025 um die Ohren: Pure Virtual Function Call
Ein bisschen geärgert hat mich das schon, doch ich las auf der msdn-page, dass man ganz einfach die Funktion int _purecall() überschreiben könne. Das habe ich gemacht, geändert hat es nix.
Also einfach mal das Programm ohne Debugger gestartet und dann erst den Debugger drangeklatscht: Zeile des Fehlers gefunden, der allerdings kein Pure Virtual Call Error sein kann, sondern allerhöchstens ein Memory Leak.
Seltsam, dachte ich, doch irgendwie könnte ich das ja schon finden. Tja. Leider nutze ich Qt 5, welches mir als Error in der cmd folgende Nachricht liefert:
Bei der abstürzenden Zeile handelt es sich um ein QGraphicsScene::addItem(QGraphicsItem* item) call.
Nun: Wie kann ich den Fehler finden? Es kann sich nicht um ein Nullpointerproblem handeln, da explizit darauf geprüft wird. Dass das Item eine andere Scene hat, ist eigentlich unmöglich, da im ganzen Programm nur eine Scene existiert.
Wie gesagt ist der Erfolg der Operation massgeblich davon abhängig, ob mit angehängtem Debugger ausgeführt wird oder nicht. Das würde auf uninitialized variables hinweisen, doch diese Möglichkeit habe ich mehrfach überprüft.
Den Code würde ich gerne anhängen, er ist allerdings so umfangreich, dass ich mal davon absehe.
Gruss
cwriter
Ich bin auf eines dieser merkwürdigen Probleme gestossen, die erst auftreten, wenn man das Programm ohne angehängten Debugger ausführt: Dann nämlich haut mir die Visual C++ 2013 Runtime den Fehler R6025 um die Ohren: Pure Virtual Function Call
Ein bisschen geärgert hat mich das schon, doch ich las auf der msdn-page, dass man ganz einfach die Funktion int _purecall() überschreiben könne. Das habe ich gemacht, geändert hat es nix.
Also einfach mal das Programm ohne Debugger gestartet und dann erst den Debugger drangeklatscht: Zeile des Fehlers gefunden, der allerdings kein Pure Virtual Call Error sein kann, sondern allerhöchstens ein Memory Leak.
Seltsam, dachte ich, doch irgendwie könnte ich das ja schon finden. Tja. Leider nutze ich Qt 5, welches mir als Error in der cmd folgende Nachricht liefert:
Code:
QGraphicsScene::sendEvent: item 0x3a17e38's scene (0x3a523e0) is different from
this scene (0xfbee08)
Nun: Wie kann ich den Fehler finden? Es kann sich nicht um ein Nullpointerproblem handeln, da explizit darauf geprüft wird. Dass das Item eine andere Scene hat, ist eigentlich unmöglich, da im ganzen Programm nur eine Scene existiert.
Wie gesagt ist der Erfolg der Operation massgeblich davon abhängig, ob mit angehängtem Debugger ausgeführt wird oder nicht. Das würde auf uninitialized variables hinweisen, doch diese Möglichkeit habe ich mehrfach überprüft.
Den Code würde ich gerne anhängen, er ist allerdings so umfangreich, dass ich mal davon absehe.
Gruss
cwriter