V
Hi,
erstmal Sorry, dass ich noch nicht geantwortet hatte, ich war heut in der Schule und nicht im
Betrieb. Kam noch nicht dazu hier zu lesen.
Und dann mal die Klasse entrümpeln, es muß doch irgendwas sein, das Speicher allokiert. Wenn Du
diese Punkte entfernst, passiert es dann auch? Und wenn Du alle delete entfernst, dann immer
noch?
Die Klasse ist so schlank, dass es da eigentlich nichts zu entruempeln gibt. Aber ich werde
dennoch deine Vorschlaege mal durchgehen.
Allerdings muesste das Programm doch dann auch abschmiren, wenn ich den CTor mit einem
Parameter aufrufe und genau das geht mir irgendwie nicht in den Kopf, warum fuehrt ein
erneutes erstellen mit diesem ueberladenen CTor nicht zum absturz?
Ich werde morgen nochmal ein paar Dinge ausprobieren. Da ich diesen Code der Klasse lediglich
uebernommen habe, hoffe ich das ich den Fehler bald finden werde ;).
Splint bzw. Lint helfen Dir vielleicht weiter... außerdem lohnt es sich vielleicht, Deinen
Quellcode mal mit einem anderen Compiler zu compilieren, möglicherweise gibt er Dir mehr
Informationen aus als der BCB6.
Ja, ich habe versucht, den Code so umzuschreiben, dass es egal sein sollte, auf welchem
Compiler er compiliert wird. Deinen Vorschlag werde ich auch einmal durchfuehren.
Was ist mit dem beim BCB (Prof und Ent) mitgelieferten CodeGuard? Ausserdem gibt's da noch die
Freeware Memproof. Das hättest du mit einer Suche im BCB-Forum aber auch leicht selbst
herausfinden können
Hmmm...sorry, war mehr oder weniger ne Verzweiflungstat, werde versuchen mich es naechste mal
zu benehmen
... fliegt std::bad_alloc, was schließlich zum kontrollierten, aber sofortigen, Ende des
Programms führt. Jedenfalls stürzt das Programm dann nicht mal eben einfach beim Eintritt in
einen Ctor ab.
std::bad_alloc fange ich eigentlich ab, aber er springt in den 'catch(...)'-Block.
Werde das morgen auch nochmal genau checken.
Aber zu dem eigentlichen Problem in dem Thread kann es nicht führen. Ich würde eher sagen,
dass es daran liegt, dass der Heap zerstört wird irgend wo (hab ich wirkliche Memoryleak im
Chat gesagt?)
Ich meine ja, kann mich aber auch irren (will dir aber nichts vorwerfen ;)).
vR: Kann man mit deinem Debugger auch auf Assembler-Ebene durchsteppen? Mach das mal.
Ja, dass habe ich auch schon gemacht. Er stuerzt innerhalb dieser Funktion ab:
__InitExceptBlockLDTC
leider kann ich damit ueberhaupt nichts anfangen und Google schweigt sich darueber auch aus.
Bei mir gingen solche Fehler auch oft weg, wenn ich einfach noch mal einen vollständigen
Rebuild gemacht habe (statt inkrementell).
Das werde ich gleich morgen frueh auch nochmal machen.
Erstmal danke dass ihr euch schon die Zeit genommen habt, mir zu schreiben, werde mich
morgen nochmal melden, wenn ich alle eure Vorschlaege durchgegangen bin.
mfg
v R