Memoryleaks in SDI-Dokument loswerden
-
Hallo NG, wenn ich mein SDI-Programm beende erhalte ich folgende Memoryleaks.
C:\CPP\MyProjects\CAD\CAD\MainFrm.cpp(26) : {75} client block at 0x002F4768, subtype 0, 1944 bytes long.
a CMainFrame object at $002F4768, 1944 bytes long
Wieso ein CMainFrame objekt?????C:\CPP\MyProjects\CAD\CAD\CADDoc.cpp(21) : {74} client block at 0x002F4690, subtype 0, 144 bytes long.
a CCADDoc object at $002F4690, 144 bytes long
Wieso jetzt CCADDoc?????plex.cpp(31) : {59} normal block at 0x002F45D8, 124 bytes long.
Data: < */ > 00 00 00 00 00 00 00 00 00 00 00 00 B8 2A 2F 00
Und was ist das?????{58} client block at 0x002F4570, subtype 0, 32 bytes long.
a CDocManager object at $002F4570, 32 bytes long
Und nun stehe ich ganz auf dem Schlauch!!!!!C:\CPP\MyProjects\CAD\CAD\CAD.cpp(74) : {56} client block at 0x002F2AB8, subtype 0, 108 bytes long.
a CSingleDocTemplate object at $002F2AB8, 108 bytes long
HIIIIIILFE!!!!Was kann ich tun?
Gruß
Christian
-
Hallo Christian,
kann es sein, dass Du eventuell im "Document" etwas mit "new" erzeugt hast und es mit "delete" nicht entfernt hast?
-
Das ist unwahrscheinlich, denn dann würde das entsprechende Element angezeigt und nicht das Frame oder das Dokument.
Trotzdem Danke,
Christian
-
sieht so aus, als hättest Du irgendwo ein 'new CMainFrame' programmiert. Oder Du hast aus der Applikation den Zeiger auf das MainFrame-Objekt auf NULL gesetzt, so dass es nicht mehr automatisch gelöscht wird
-
Hallo,
ich habe den Fehler gefunden! Durch einen Absturz des Programms wurde der ordentliche Abbau vom Document und Frame gar nicht mehr durchgeführt. Deshalb die Leaks. Interessanter weise gab es auch keine Fehlermeldung bei Debuggen. Einziger Punkt war ganz am Ende die Meldung Programm wurde mit Code 3 beendet.
Euch allen vielen Dank für die Hilfe,
Christian