Freigeben über


Nachverfolgen von Speicherreservierungen

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

Thema ist nicht vorhanden Thema ist nicht vorhanden Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Pro, Premium und Ultimate

Thema ist nicht vorhanden Thema ist nicht vorhanden Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

In MFC können Sie anstelle des Operators new auch das DEBUG_NEW-Makro verwenden, um Speicherverluste aufzudecken. In der Debugversion des Programms werden durch DEBUG_NEW die Dateinamen und Zeilennummern jedes von ihm reservierten Objekts nachverfolgt. Wenn Sie eine Releaseversion des Programms kompilieren, wird DEBUG_NEW in eine einfache new-Operation aufgelöst, ohne dass Dateinamen und Zeilennummern aufgelöst werden. Folglich wird die Ausführungsgeschwindigkeit der Releaseversion des Programms nicht beeinträchtigt.

Wenn Sie nicht das gesamte Programm umschreiben möchten, um DEBUG_NEW anstelle von new zu verwenden, können Sie dieses Makro in den Quellcodedateien definieren:

#define new DEBUG_NEW

Wenn Sie einen Objektdump erstellen, wird für jedes mit DEBUG_NEW zugeordnete Objekt der Dateiname und die Zeilennummer der Stelle angezeigt, an der es reserviert wurde. Auf diese Weise lässt sich die Ursache für Speicherverluste eindeutig ermitteln.

In der Debugversion des MFC-Frameworks wird DEBUG_NEW automatisch verwendet, im Code jedoch nicht. Um die Vorteile von DEBUG_NEW nutzen zu können, müssen Sie DEBUG_NEW explizit oder #define new, wie oben dargestellt, verwenden.

Siehe auch

Weitere Ressourcen

Speicherverlusterkennung in MFC