G
std::Robin schrieb:
Auch wenn ich das ganze MySQL Zeug auskommentiere und ich 1 mal etwas per push_back auf res packe kommt schon der o.g. Fehler.
Es muss also irgenwas mit dem Container an sich oder dem Call by Reference zu tun haben. (glaub ich zumindest)
Ich glaube eher, dass der Fehler durch etwas ganz anderes provoziert wird. Denn es ist erstmal nicht davon auszugehen, dass der Container fehlerhaft arbeitet. Und am Call by-reference liegt's mit Sicherheit auch nicht.
std::Robin schrieb:
Was mich stutzig stimmt ist die Tatsache, dass wenn ich die Methode aus der main() aufrufe kein Speicherleck entsteht, sondern nur aus threads heraus...
Evtl. Synchronisationsprobleme? Dh, du benutzt im Thread irgendwas, was in einem anderen Thread initialisiert wird. Zu diesem Zeitpunkt aber noch uninitialisiert wird. Btw, wie kommst du eigentlich darauf, dass der Fehler an besagter Stelle liegt? Reine Spekulation? Oder hast du irgendwelche konkreten Hinweise?
std::Robin schrieb:
Sollte ich vielleicht row mal volatile setzen?
Du meinst das row in object::loadfromdb? Nein, das würde nix bringen, da row funktionslokal ist und von aussen sowieso nicht verändert werden kann.
Also wie gesagt, ich kann in deinem Code erstmal nichts erkennen, was auf diesen Fehler hindeutet. Das muss aber nicht heissen, dass er dort nicht ist. Ich kenne wie gesagt die mysql Funktionen nicht. Dennoch würde ich auf eine andere Stelle als Fehlerursache tippen. Ich kann dir jetzt eigentlich nur den Tipp geben, mit Hilfe des Debuggers die betreffende Fehlerstelle (in der Meldung steht ja die Adresse) zurückzuverfolgen. Mittels Call Stack sollte das eigentlich kein Problem sein. Allerdings benutze ich für sowas VC, da dort ein richtig guter Debugger dabei ist. Wie ich sehe, benutzt du aber MinGW und unter Windows gibts afaik kein vernünftiges Frontend für GDB. Nur als Hinweis.