Scotty hat geschrieben:Meine destroy-Routinen werden alle sauber durchlaufen und heaptrace meldet, dass alles freigegeben sei. Allerdings bekomme ich danach eine AV. Sollte ich dem Problem nachgehen (oder ist das eine Frage von heaptrc) und wenn, wo?
Ja, du musst dem nachgehen. Bei einer Access Violation greift dein Programm auf ein Stück Arbeitsspeicher zu, das ihm nicht vom Betriebssystem zugeordnet wurde.
Das ist immer ein Fehler und gehört behoben. Die Unit heaptrc hilft häufig dabei diese Fehler zu finden.
Da dein Stacktrace wenig aussagekräftig ist, hilft wohl zuerst nur der Debugger. Damit kannst du definitiv herausfinden, wo auf den Speicher zugegriffen wird (eine Variable, ein Objekt, etc.), auch wenn dies in der LCL/RTL liegen sollte. Bei einem Zweiten Durchlauf setzt du im Debugger eine Haltebedingung auf die Änderung dieser Variablen.